Невозможно отобразить значения таблицы базы данных, используя dataTable - PullRequest
0 голосов
/ 09 мая 2011

У меня есть сотрудник класса бина, имеющий атрибуты id, name вместе с общедоступными получателями и установщиками.

Я использую следующий 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>

Просьба ответить.Заранее спасибо.

1 Ответ

2 голосов
/ 09 мая 2011

Я думаю, что это ( снова ) проблема именования методов получения / установки.Если ваше свойство имеет имя

private List<Employee> perInfoAll

, метод получения должен быть

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

Обратите внимание на заглавную букву "P" в имени метода.

Кроме того, вы нене нужно ставить точку с запятой после выражения el на вашем лицевом листе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...