Jåc*_*cob 4 java jsf primefaces jsf-2
我在ManagedBean中有以下内容
private Employee selectedEmployee; // with getter and setter
public void onRowSelect(SelectEvent event) {
System.out.println("selected employee "+selectedEmployee.getEmployeeNumber());
}
Run Code Online (Sandbox Code Playgroud)
我的问题是Employee
实体类,如果我做employeeNumber
的String
到Long
,我正在为null selectedEmployee
在onRowSelect
ManagedBean的方法
员工实体类
private String employeeNumber; // this works
private Long employeeNumber; // this doesn't work
Run Code Online (Sandbox Code Playgroud)
这可能是什么原因?
JSF代码供选择
<p:dataTable id="dataTable" var="emp" lazy="true"
value="#{myMB.lazyModel}" styleClass="userDataTableStyle"
paginator="true" paginatorPosition="bottom" rows="5"
selection="#{myMB.selectedEmployee}">
<p:ajax event="rowSelectRadio" listener="#{myMB.onRowSelect}"
update=":myform:details" />
Run Code Online (Sandbox Code Playgroud)
在使用选择时,dataTable
您应该提供rowKey
用于查找列表中选择的实际对象的属性。这应该是列表中所有数据唯一的属性(可能是数据库中的主键):
rowKey="#{emp.employeeNumber}"
Run Code Online (Sandbox Code Playgroud)
我不知道这与 String 一起工作的真正原因。也许这是你toString()
方法的一部分?
归档时间: |
|
查看次数: |
8269 次 |
最近记录: |