在多个场合渲染相同的面板

时间:2013-06-05 04:41:24

标签: primefaces

我正在使用PrimeFaces,我想知道它可以在同一页面内多次渲染一个面板。例如,我有一个如下面板:

<p:panel id="studentInfo">
  <p:commandButton id="viewFullProfile" ....
  <h:outputText value="Search" />
  <p:inputText id="search" ....
</p:panel>

我希望此面板位于p:tabView控件的每个选项卡中。

<p:tabView id="studentProfile">
  <p:tab id="tabA">
     ..render "studentInfo" here...
  </p:tab>

  <p:tab id="tabB">
     ..render "studentInfo" here...
  </p:tab>

  <p:tab id="tabC">
     ..render "studentInfo" here...
  </p:tab>
</p:tabView>

1 个答案:

答案 0 :(得分:0)

您需要一个这样的简单视图:

<强> studentInfo.xhtml

<ui:composition>
    <p:panel>
        #{item}
    </p:panel>
</ui:composition>

注意:我目前正在传递#{item}作为可以成为学生实体的参数。

您的观点:

<p:tabView id="studentProfile">
    <p:tab id="tabA">
        <ui:composition template="studentInfo.xhtml">
            <ui:param name="item" value="Student A" />
        </ui:composition>
    </p:tab>

    <p:tab id="tabB">
        <ui:composition template="studentInfo.xhtml">
            <ui:param name="item" value="Student A" />
        </ui:composition>
    </p:tab>

    <p:tab id="tabC">
        <ui:composition template="studentInfo.xhtml">
            <ui:param name="item" value="Student A" />
        </ui:composition>
    </p:tab>
</p:tabView>