1

ui:include を使用してタブを動的に追加しようとしていますが、うまく動作しません。
HTML 応答を見ると、コンテンツはそこにありますが、タブには表示されません。
他のコンテンツを含む 2 番目のタブを開こうとすると、HTML の結果に 1 番目のタブと同じコンテンツが含まれます。

次のコマンドでタブが追加されます。

<p:commandLink id="appC1" update=":tabview" actionListener="#{tview.sideBarAction}"
value="App 1">
    <f:param id="c1ParamId" name="pageViewId" value="App1" />
</p:commandLink>

そしてタブビュー:

<p:tabView id="tabview" value="#{tview.tabs}" var="tab">
<p:tab title="#{tab.title}" closable="true">
    <p:panel id="myPanel">
    <ui:include src="#{tab.content}"/>
    </p:panel>
</p:tab>
</p:tabView>

プログラムでこれを実行しようとしましたが、最良の結果が得られませんでした!

4

1 に答える 1

1

そのように c:forEach を試してください:

<p:tabView id="tabPanel" activeIndex="#{tabView.activeIndex}"
                       style="width: 100%; height: 100% !important;">
                <p:ajax event="tabClose" listener="#{tabView.onTabClose}"/>
                <p:ajax event="tabChange" listener="#{tabView.onTabChange}"/>
    <c:forEach items="#{tabView.tabs}" var="tab">
          <p:tab titletip="#{tab.id}" title="#{tab.label}" closable="true">
              <ui:include src="#{tab.url}"/>
          </p:tab>
    </c:forEach>

</p:tabView>

幸運を!:)

于 2014-02-14T08:12:18.650 に答える