の使用に問題が発生しました<p:commandLink>
。
<p:commandLink action="#{commonOrgPage.preCreateCommonOrg}"
immediate="true"
update=":createCommonOrgForm:addCommonOrg"
oncomplete="addDlg.show();">
追加ダイアログを表示するには、その前に、アクションを呼び出してダイアログを更新する必要があります。しかし、アクションは呼び出されず、ダイアログが表示されます。
ホームページ.xhtml
<ui:define name="mainLayoutTitle">Home Page</ui:define>
<ui:define name="bodyName">
<ui:decorate template="/pages/commons/layouts/contentLayout.xhtml">
<ui:define name="leftContentName">
<ui:include src="/maintainCodeMenu.xhtml"></ui:include>
</ui:define>
<ui:define name="rightContentName">
<p:outputPanel id="rightContentPanel" >
<p:outputPanel rendered="${commonOrgPage.commonOrgTypeName !=null}">
<ui:include src="/pages/admin/commonorg/viewCommonOrgList.xhtml"></ui:include>
</p:outputPanel>
</p:outputPanel>
</ui:define>
</ui:decorate>
</ui:define>
</ui:composition>
maineCodeMenu.xhtml
<h:form id="codeMenu">
<div>Common Organisations</div>
<p:separator />
<div>
<p:commandLink id="Bank" value="Add Bank" action="#{commonOrgPage.listCommonOrgByCriteria}"
update=":rightContentPanel" ajax="false">
<f:param name="commonOrgTypeCode" value="B" />
<f:param name="commonOrgTypeName" value="Bank"/>
</p:commandLink>
</div>
<div>
<p:commandLink id="School" value="Add School" action="#{commonOrgPage.listCommonOrgByCriteria}"
update=":rightContentPanel" >
<f:param name="commonOrgTypeCode" value="SH" />
<f:param name="commonOrgTypeName" value="School"/>
</p:commandLink>
</div>
</h:form>
</ui:composition>
viewCommonOrgList.xhtml
<h:form id="commonOrgList">
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td class="pgHdr">
<div style="float: right">
<p:commandLink action="#{commonOrgPage.preCreateCommonOrg}" immediate="true" update=":createCommonOrgForm:addCommonOrg" oncomplete="addDlg.show();" styleClass="button">
<span>Add</span>
</p:commandLink>
</div></td></tr></tbody></table></h:form>
<p:dialog header="Add Common Organisation" appendToBody="true" draggable="false" widgetVar="addDlg" resizable="false" id="addDialog" showEffect="fade" modal="true" >
<h:form id="createCommonOrgForm">
<h:panelGroup id="addCommonOrg">
<ui:include src="/pages/admin/commonorg/createOrUpdateCommonOrg.xhtml"></ui:include>
</h:panelGroup>
</h:form>
</p:dialog>
PageBean スコープを「session」に設定することでプレビューの問題は解決しましたが、<h:outputFormat value="#{commonOrgPage.commonOrgTO.orgEffectiveFrom}"/>
代わりに配置すると別の問題が発生します
<ui:include src="/pages/admin/commonorg/createOrUpdateCommonOrg.xhtml"></ui:include>
#{commonOrgPage.preCreateCommonOrg} アクションが呼び出された後、新しい値を取得できます。ただし<ui:include>
、ダイアログを使用すると、新しい値を取得できません。