我有一个bean类员工,其中包含属性id,名称以及公共getter和setter。
我正在使用以下bean进行数据库连接并从数据库表中获取值。
TableBean.java:
public class TableBean{
public Connection getVConnection() throws Exception{
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:globldb3";
String username = "scott";
String password = "tiger";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
return conn;
}
public List<Employee> getPerInfoAll() {
int i = 0;
Connection conn = null;
PreparedStatement pstmt = null;
List<Employee> perInfoAll = new ArrayList();
try {
conn = getVConnection();
String query = "select * from employee where e_id>5400";
pstmt = conn.prepareStatement(query);
rs = pstmt.executeQuery();
while(rs.next()){
System.out.println(rs.getString(1));
perInfoAll.add(i,newEmployee(rs.getInt(1),rs.getString(2)));
i++;
}
pstmt.close();
rs.close();
conn.close();
}catch (Exception e){
e.printStackTrace();
}
return perInfoAll;
}
以下是jsf页面:
<h:dataTable value="#{TableBean.perInfoAll}" var="e">
<h:column>
<f:facet name="header">Employee id</f:facet>
<h:outputText value="#{e.id}">
</h:column>
<h:column>
<f:facet name="header">Employee name</f:facet>
<h:outputText value="#{e.name}">
</h:column>
</h:dataTable>
请回复。 提前谢谢。
答案 0 :(得分:2)
我认为(again)可能是getter / setter方法命名的问题。如果您的财产名为
private List<Employee> perInfoAll
getter方法必须是
public List<Employee> getPerInfoAll() { ... }
注意方法名称中的大写“P”。
此外,您在facelet中表达el后不需要分号。