Primefaces 将数据发送到另一页

Primefaces 将数据发送到另一页,primefaces,datatable,Primefaces,Datatable,我是primefaces的新手,我做了一个数据表,并在index.xhtml中显示它。我按下时有一个按钮,它显示选择数据表(对话框),但我不知道如何将选择数据表发送到另一个页面。对不起,我在学英语,谢谢 index.xhtml <p:dataTable id="singleDT" var="emp" value="#{empresaBean.getEmpresaList()}" selectionMode="single" scrollable="true" scrollHeig

我是primefaces的新手,我做了一个数据表,并在index.xhtml中显示它。我按下时有一个按钮,它显示选择数据表(对话框),但我不知道如何将选择数据表发送到另一个页面。对不起,我在学英语,谢谢

index.xhtml

 <p:dataTable id="singleDT" var="emp" value="#{empresaBean.getEmpresaList()}" selectionMode="single"
    scrollable="true" scrollHeight="400" selection="#{empresaBean.selectedEmpresa}" rowKey="#{emp.CLAVE}"> 
        <f:facet name="header">
            Lista de Empresas
         </f:facet>

      <p:column headerText="Id">
       <h:outputText value="#{emp.CLAVE}" />
       </p:column>

         <p:column headerText="Nombre Empresa">
       <h:outputText value="#{emp.NOMBRE}" />
       </p:column>

         <p:column headerText="AÑO">
       <h:outputText value="#{emp.EJERCICIO}" />
       </p:column>

<f:facet name="footer">
    <p:button outcome="/pages/menu/menuPrincipal.xhtml" value="Seleccionar" title="Ir Menu">
    </p:button>

<p:commandButton value="View" image="ui-icon ui-icon-search"  
        oncomplete="empresaDialog.show()"/>  
   </f:facet>
</p:dataTable>

<p:dialog header="Car Detail" widgetVar="empresaDialog" resizable="false"  
              width="200" showEffect="clip" hideEffect="fold">  

        <h:panelGrid id="display" columns="2" cellpadding="4">  

            <h:outputText value="Clave:" />  
            <h:outputText value="#{empresaBean.selectedEmpresa.CLAVE}" />  

            <h:outputText value="Año:" />  
            <h:outputText value="#{empresaBean.selectedEmpresa.NOMBRE}" />  

            <h:outputText value="Año:" />  
            <h:outputText value="#{empresaBean.selectedEmpresa.EJERCICIO}" />  

        </h:panelGrid>  
    </p:dialog>  



      </h:form>
   </h:body>

埃姆普雷斯酒店
EmpresaBean

@ManagedBean(name="empresaBean")
@Scope
@Component
public class EmpresaBean {

    @Autowired
    private EmpresaService empresaService;
    private Empresa empresa;
    private Empresa selectedEmpresa;
    private List<Empresa> empresasSmall;

    public EmpresaService getEmpresaService() {
        return empresaService;
    }

    public Empresa getSelectedEmpresa() {
        return selectedEmpresa;
    }

    public void setSelectedEmpresa(Empresa selectedEmpresa) {
        this.selectedEmpresa = selectedEmpresa;
    }

    public void setEmpresaService(EmpresaService empresaService) {
        this.empresaService = empresaService;
    }

    public EmpresaBean(){
        empresa = new Empresa();
    //  empresasSmall=new ArrayList<Empresa>();
        // list.add(new Empresa(getEmpresaList());  
    } 
/*  
    public void addEmpresa(){
        empresaService.add(empresa);
        empresa = new Empresa();
    }  */

    public List<Empresa> getEmpresaList(){

        return empresaService.getAll();
    }

    public Empresa getEmpresa() {
        return empresa;
    }
    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }  
}
@ManagedBean(name=“empresaBean”)
@范围
@组成部分
公共类EmpresaBean{
@自动连线
私人经营服务;
私营企业;
私营企业选择经营;
私人上市商场;
公共EmpresaService getEmpresaService(){
退货服务;
}
公共Empresa getSelectedEmpresa(){
返回所选的mpresa;
}
公共作废设置已选副本(已选副本){
this.selectedEmpresa=selectedEmpresa;
}
公共无效设置EmpresaService(EmpresaService EmpresaService){
this.empresaService=empresaService;
}
公营菜豆(){
empresa=新empresa();
//empresasSmall=newarraylist();
//添加(新的Empresa(getEmpresaList());
} 
/*  
公共无效附录A(){
empresaService.add(empresa);
empresa=新empresa();
}  */
公共列表getEmpresaList(){
返回empresaService.getAll();
}
公共企业{
返回empresa;
}
公共无效设置Empresa(Empresa Empresa){
this.empresa=empresa;
}  
}

您不能将html发送到另一个页面(对话框)。您应该只推送将在另一个页面上使用的数据。 要从datatable(被认为是列表)推送数据,您应该使用@ManagedProperty注释

假设您有索引页:

@ManagedBean(name="index")
@SessionScoped
public class IndexPage implements Serializable {

    private List<String> values;

    //getter and setter

}

}

好的,我理解你的意思,但我如何知道我是选择了一行还是另一行?用你的案例的解决方案更新答案。试试看吧,现在可以了,但我有其他错误,我写了其他问题。:)
@ManagedBean(name="nextPage")
@SessionScoped
public class AnotherPage implements Serializable {

    @ManagedProperty(value="#{index.values}")
    private List<String> forwardedList; //list with values form index page

    //getter and setter

}
@ManagedBean(name="nextPage")
@SessionScoped
public class AnotherPage implements Serializable {

@ManagedProperty(value="{empresaBean.selectedEmpresa}")
private Empresa selectedValue; //value from selected row in your table

//getter and setter