Java JSF数据表根据选择填充行

Java JSF数据表根据选择填充行,java,jsf-2,primefaces,Java,Jsf 2,Primefaces,我在一个jsf页面中有两个DataTable,它们都有两个不同的托管bean //master table <p:dataTable id="dataTable" var="req" lazy="true" value="#{emp.lazyModel}" paginator="true" rows="10" selection="#{emp.selectedRequest}"> <p:a

我在一个jsf页面中有两个DataTable,它们都有两个不同的托管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

@Named("emp")
@ViewAccessScoped
public class EmployeeManagedBean implements Serializable {

@PostConstruct
    public void init() {
        initTable();
    }
@Named("dept")
@ViewAccessScoped
public class DepartmentManagedBean implements Serializable {

@PostConstruct
    public void init() {
        initTable();
    }
initTable()
是一种为两个托管bean填充LazyModel的方法

当我在主数据表中选择一行时,我能够在托管bean中获得第一个数据表的选定行值,即
EmployeeManagedBean

我的问题是,通过将第一个datatable的选定行值传递给第二个托管bean,从而填充第二个datatable,填充第二个datatable的最佳方法是什么?在第二个数据表中显示值的触发点应基于在第一个数据表中选择的行

任何帮助都是值得赞赏的


谢谢

我对这一切都不熟悉,但我试着这样做:

  • 将所选行传递给第二个bean(DepartmentManagedBean)
  • 根据所选行选择部门
  • 使用p:ajax属性更新更新第二个数据表

  • 达卡,你的回答特别是第三点几乎解决了我的问题。还有一些工作要做,然后我可以确认我的表格是否有效。非常感谢,我的主细节表单正在运行,仍然需要做一些调整。非常感谢。我能帮忙真是太好了:)