我正在传递一个bean(它是一个子bean,因为它包含在另一个Session bean中),这个bean应该从客户端template-1传递到另一个客户端template-2,但是接收的值为null。但是我可以在页面之间使用ui:param正确发送参数,但是无法在客户端模板之间发送bean。 请注意,客户端template2将覆盖客户端模板1,它将进入主菜单的内容区域(maintracking.xhtml)。
问题:如何在客户端模板之间发送bean / share后端数据?
平台: netbeans:8.0 Jsf 2.2,primeface 4.0 Apache Tomcat 7
bean null screenshot http://safirasoft.com/wp-content/uploads/2014/04/beannull.png
public class SubBean implements Serializable{
//---
}
@ManagedBean
@SessionScoped
public class FicheDescControl implements Serializable
{
Subbean subbean;
//....
}
主菜单(模板):maintracking.xhtml
<h:body>
<div id="top" class="top">
<ui:insert name="top">
top content
</ui:insert>
</div>
<div id="content" class="center_content">
<ui:insert name="content"></ui:insert>
</div>
</h:body>
客户端1模板:
<ui:composition template="./maintracking.xhtml">
<ui:define name="content">
<h:form>
<p:dataTable id="table" value="#{ficheDescControl.lfiches}" var="fiche" >
<h:commandButton action="#{ficheDescControl.retrieveFiche()}" value="Donner le Visa (Accord)" rendered="#{p:ifGranted('chef')}">
<f:setPropertyActionListener target="#{ficheDescControl.idFicheParam}" value="#{fiche.idFicheDescriptive}" />
</h:commandButton>
</p:column>
<ui:param name="idFicheParamP" value="behhhh" />
</p:dataTable>
</h:form>
</ui:define>
</ui:composition>
Client2模板:
<ui:composition template="./maintracking.xhtml">
<ui:define name="content">
<f:view>
<p:outputLabel style="color: red;font-size: medium; font-weight: bolder;"
value="idFicheParam = #{ficheDescControl.idFicheParam}"/>
<p:outputLabel style="color: red;font-size: medium; font-weight: bolder;"
value=" ----- selected subbean: #{ficheDescControl.subbean}"/>
<h:commandButton action="#{ficheDescControl.edit()}" value="Valider" />
</h:form>
</f:view>
</ui:define>
</ui:composition>