0

次のようにPrimeFacesを使用して作成されたダイアログがあります。

<h:body>
    <ui:composition>
    <h:form id="newResource">
        <p:dialog 
            id="modalDialog" 
            header="Create a new Resource" 
            widgetVar="dlg2" 
            modal="true" 
            visible="true">  
            ...
        </p:dialog>
    </h:form> 
    </ui:composition>  

これを表示したいページに、次のタラがあります。最後の行は、ダイアログを含める場所です。

    <h:body>
    <p:growl id="growl" showDetail="true" sticky="true" />
    <ui:composition template="/template/masterLayout.xhtml">
        <ui:define name="windowTitle">
            Resources
        </ui:define>
        <ui:define name="stack">
            <p:stack 
                id="dvStackMenu" 
                expanded="true" 
                icon="/resources/images/stack/stack.png" 
                model="#{resourcePageController.stackMenuModel}"/>
        </ui:define>
        <ui:define name="content">
            <h:form>
                <p:dataTable 
                    var="resc" 
                    rowKey="#{resc.resourceId}"
                    selection="#{resourcePageController.selectedResources}"
                    value="#{resourcePageController.resources}"
                    selectionMode="multiple">  
                    <p:column headerText="Name">  
                        <h:outputText value="#{resc.name}" />  
                    </p:column>
                    <p:column headerText="Created On">  
                        <h:outputText value="#{resc.createdOn}" />  
                    </p:column>
                    <p:ajax event="rowSelect"/>
                    <p:ajax event="rowUnselect" />
                </p:dataTable> 
            </h:form>
        </ui:define>
    </ui:composition>
    <ui:include src="/template/dialog/create/resource.xhtml" />
</h:body>

ダイアログのvisible属性はtrueに設定されているため、予想される動作は、ページが読み込まれたときにダイアログが表示されることです。ただし、これは当てはまりません。

/template/dialog/create/resource.xhtmlブラウザでに移動すると、ダイアログが期待どおりに表示されます。

誰かが私に何が起こっているのか助けてくれますか?それがui:includeの使用なのか、それとも何か他のことが起こっているのかわかりません。

4

1 に答える 1

3

のコンテンツが<ui:composition>そので装飾されているtemplate場合、それ以外のコンテンツはすべて<ui:composition>無視されます。

したがって、インクルードをのいずれかの中に配置する必要があります<ui:define>

于 2012-11-27T16:22:10.020 に答える