JSF生命周期。将panelGrid用于嵌套组件(使用ui:include)

时间:2013-06-03 14:31:35

标签: java jsf jsf-2 primefaces uicomponents

我与panelGrid有共同的形式:

<h:form id="formId">
            <p:panelGrid columns="2" id="sdf">
                         <ui:include src="row1.xhtml"/>
                         <ui:include src="row2.xhtml"/>
                     </p:panelGrid>
 </form>

和两个嵌套页面。 row1.xhtml:

<ui:fragment xmlns="http://www.w3.org/1999/xhtml"
             xmlns:h="http://java.sun.com/jsf/html"
             xmlns:ui="http://java.sun.com/jsf/facelets"
             xmlns:p="http://primefaces.org/ui">
    <h:outputText value="Text  (column 1)"/>
    <p:commandButton value="Batton (column 1)"/>
</ui:fragment>

和row2.xhtml:

<ui:fragment xmlns="http://www.w3.org/1999/xhtml"
             xmlns:h="http://java.sun.com/jsf/html"
             xmlns:ui="http://java.sun.com/jsf/facelets"
             xmlns:p="http://primefaces.org/ui">
    <h:outputText value="Text  (column 2)"/>
    <p:commandButton value="Batton (column 2)"/>
</ui:fragment>

在这种情况下,panelGrid适用于页面,而不适用于组件(outputText和commandButton):

文本(第1列)按钮(第1列)

文字(第2栏)按钮(第2栏)

但我需要这个:

文字(第1栏)按钮(第2栏)

文字(第1栏)按钮(第2栏)

我不能在一个页面中包含所有组件,因为我将参数传递给嵌套页面,这是 - 重新使用的组件,但我需要根据第一列支持对齐。

我使用:PrimeFaces 3.5和JSF 2.1.22

提前致谢!

1 个答案:

答案 0 :(得分:0)

我在PrimeFaces论坛上找到了答案。它应该使用ui:composition而不是ui:fragment。

“来自文档”ui:fragment与ui:composition相同,除了两件事:JSF创建一个组件并将其直接添加到树中,并且没有关联的模板。“

link