我在一个jsf页面中有两个数据表,两个都有两个不同的托管bean。
//master table
<p:dataTable id="dataTable" var="req" lazy="true"
value="#{emp.lazyModel}" paginator="true" rows="10"
selection="#{emp.selectedRequest}">
<p:ajax event="rowSelectRadio" listener="#{emp.onRowSelect}" />
<p:column selectionMode=">
<h:outputText value="#{req.empNo}" />
</p:column>
// detail table
<p:dataTable id="Det" var="det" lazy="true"
value="#{dept.lazyModel}" paginator="true" rows="1">
<p:column>
<f:facet name="header">
<h:outputText value="DeptNo" />
</f:facet>
<h:outputText value="#{det.deptNo}" />
</p:column>
分别管理bean
//主表托管Bean
@Named("emp")
@ViewAccessScoped
public class EmployeeManagedBean implements Serializable {
@PostConstruct
public void init() {
initTable();
}
//详细信息表托管Bean
@Named("dept")
@ViewAccessScoped
public class DepartmentManagedBean implements Serializable {
@PostConstruct
public void init() {
initTable();
}
initTable()
是一种为两个托管bean填充LazyModel的方法
当我在master datatable中选择一行时,我能够在托管bean中为第一个数据表获取选定的行值EmployeeManagedBean
我的问题是,通过将第一个数据表的选定行值传递给第二个托管bean来填充第二个数据表,填充第二个数据表的最佳方法是什么?在第二个数据中显示值的触发点应该基于第一个数据表中行的选择。
任何帮助都非常值得赞赏。
由于
答案 0 :(得分:3)
我是新手,但我尝试这样做: