1

の使用に問題が発生しました<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>、ダイアログを使用すると、新しい値を取得できません。

4

0 に答える 0