Java JSF数据表选定行

Java JSF数据表选定行,java,jsf,jsf-2,primefaces,Java,Jsf,Jsf 2,Primefaces,这听起来可能很奇怪,但如果操作不在datatable行中,则检查是否有可能获取datatable selected行值 在JSF页面中我有以下内容 <p:dataTable id="det" var="emp" lazy="true" value="#{myMB.lazyModel}" paginator="true" paginatorPosition="bottom" rows="10" rowKey="#{emp.employeeNumber}"> &

这听起来可能很奇怪,但如果操作不在datatable行中,则检查是否有可能获取datatable selected行值

在JSF页面中我有以下内容

    <p:dataTable id="det" var="emp" lazy="true"
value="#{myMB.lazyModel}" paginator="true"
paginatorPosition="bottom" rows="10"
    rowKey="#{emp.employeeNumber}">

    <f:facet name="header">                  
        Employee Details    
    </f:facet>

我不认为如果你不把按钮放在行内,你可以得到像rowId这样的信息。我建议您首先从dataTable中获取一个id,然后将其放入任何隐藏值中,以便在commandButton中使用它。

如果您不将按钮放在行中,我认为您无法获得类似rowId的信息。我建议您首先从dataTable中获取id,然后将其放入任何隐藏值中,以便在commandButton中使用它。

您可以使用
,避免使用
@LuiggiMendoza所以操作调用
setDepartment
方法,该方法接受参数或将dataTable det的id传递给set方法?我想最好是第一个方法一。@Polppan,您必须以某种方式选择该行,例如添加复选框/radio列,当单击该行的复选框/radio时,您将能够设置正确的
{emp}
…您可以使用
并避免使用
@LuiggiMendoza So操作调用
setDepartment
方法,该方法接受参数或将datatable det的id传递给set方法?我想最好是第一个。@Polppan,您必须以某种方式选择行,例如添加复选框/单选列,当点击该行复选框/收音机时,您将能够设置正确的
{emp}
。。。
             <p:commandButton id="addEmployee" 
              icon="ui-icon-plus"                          
              oncomplete="newEmployeeDialog.show()" >
     <f:setPropertyActionListener value="#{emp}" 
     target="#{myMB.selectedDepartment}" />   
      </p:commandButton>