Вам необходимо предоставить обычный метод получения и установки. EL не будет обращаться к свойствам по полям, он будет обращаться к ним только с помощью методов получения и изменять их только с помощью методов установки. Если вам лень набирать текст, вы можете даже позволить своей IDE (такой как Eclipse / Netbeans / IntelliJ) автоматически сгенерировать их.
public class Employee {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
С
<h:inputText value="#{employee.id}" />
и
<h:dataTable value="#{bean.employees}" var="employee">
<h:column>#{employee.id}</h:column>
<h:column>#{employee.name}</h:column>
</h:dataTable>
Обратите внимание, что он чувствителен к регистру и должен следовать Javabeans spec правилам. #{employee.id}
ожидает метод public Object getId()
(где Object
- это тот тип, который вам нужен). В вашем примере у вас есть #{employee.eId}
, который не может быть действительным. Если первые два символа идентификатора public Object getEId()
указаны в верхнем регистре, вы должны получить к нему доступ #{employee.EId}
. Но в конце концов, использование венгерских или префиксных обозначений не имеет смысла. Просто избавьтесь от префикса e
. Это делает код более самодокументированным.
Не забудьте соответственно изменить свой код JDBC
preparedStatement.setInt(1, employee.getId());
и
Employee employee = new Employee();
employee.setId(resultSet.getInt("id"));
employee.setName(resultSet.getString("name"));
Обратите внимание, что передача ResultSet
в качестве возвращаемого значения метода - плохая идея. Как только вы закроете его перед возвратом, вы больше не сможете получать значения из него И когда вы не закрываете его, вы теряете ресурсы. Вам нужно обработать его в том же блоке методов, в котором вы его открывали и закрывали. В приведенном выше примере просто выполните return employee;
.
Чтобы узнать, как начать работу с базовым DAO, проверьте эту статью .