2011-05-09 85 views
0

我有一个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> 

的善意回应。 在此先感谢。

回答

2

我认为这可能是(again)getter/setter方法命名的问题。如果你的属性名为

private List<Employee> perInfoAll 

getter方法必须

public List<Employee> getPerInfoAll() { ... } 

注意方法名中的大写字母“P”。

此外,你的facelet中的el表达式之后不需要分号。