【发布时间】:2011-03-28 10:05:50
【问题描述】:
嗨, 已使用 JSF h:data Table - jsf 数据表为空,我的 sp 正在返回值,因此 getList 返回值,但在浏览器中只能看到标题,在浏览器中看不到表值。
以下是我的 JSP
<h:panelGrid>
<f:facet name="header">
<h:outputText value="Employee Details" />
</f:facet>
<h:dataTable value="#{dataTableBean.list}" var="loc"
bgcolor="#F1F1F1" border="10" cellpadding="5" cellspacing="3"
first="0" rows="5" width="50%">
<h:column>
<f:facet name="header">
<h:outputText value="Sponsor ID" />
</f:facet>
<h:outputText value="#{loc.sponsorID}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Sponsor Name" />
</f:facet>
<h:outputText value="#{loc.sponsorName}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Distributor ID" />
</f:facet>
<h:outputText value="#{loc.distributorID}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Distributor Name" />
</f:facet>
<h:outputText value="#{loc.distributorName}" />
</h:column>
</h:dataTable>
</h:panelGrid>
</h:form>
我的豆子
公共类 DataTableBean {
private List<BillTransPay> list;
public List<BillTransPay> getList() {
String SP_BILLPAY = "{call sp_aw_BillTransPay(?,?,?,?,?,?,?)}";
Connection con = null;
ResultSet rs = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = java.sql.DriverManager
.getConnection(conString);
CallableStatement cbls = con
.prepareCall("{call sp_aw_BillTransPay(?,?,?,?,?,?,?)}");
cbls.setString(1, "csf");
cbls.setString(2, "20100101");
cbls.setString(3, "20100301");
cbls.setString(4, "B");
cbls.setString(5, "01CS");
cbls.setString(6, "ALL");
cbls.setInt(7, 14000);
rs = cbls.executeQuery();
list = new ArrayList<BillTransPay>();
while (rs.next()) {
BillTransPay btp = new BillTransPay();
btp.setSponsorID(rs.getString("SponsorCode"));
btp.setSponsorName(rs.getString("SponsorName"));
btp.setDistributorID(rs.getString("DistID"));
btp.setDistributorName(rs.getString("DistName"));
list.add(btp);
}
} catch (Exception ex) {
ex.printStackTrace();
}
return list;
}
public void setList(List<BillTransPay> list) {
this.list = list;
}
}
Faces-Config.xml
**<managed-bean>
<managed-bean-name>dataTableBean</managed-bean-name>
<managed-bean-class>
com.SQLProcess.dto.DataTableBean
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>**
【问题讨论】:
-
代码似乎没问题。你得到什么作为 HTML ?你真的在使用
List传递一些东西吗? -
只有标题,但 sp 是返回值。
-
尝试在 XHTML 上使用
getList或说retrieveData并重构方法名称 -
如果我尝试 getList - 我收到以下错误 javax.servlet.ServletException: /JSP/dataTableDemo.jsp(15,3) '#{dataTableBean.getList}' Property 'getList' not found on输入 com.SQLProcess.dto.DataTableBean javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
-
我会尝试从 getter 方法中删除数据获取(将它放在构造函数中,因为它是一个请求范围的 bean)。让getter只返回构造函数填充的列表。