Как создать динамические вкладки, используя включение с PrimeFaces

Я пытаюсь добавить вкладки динамически, используя ui:include, но не могу получить хорошее поведение!
Если я смотрю на ответ HTML, содержимое есть, но не отображается на вкладке.
Если я попытаюсь чтобы открыть вторую вкладку с другим содержимым, результат html содержит то же содержимое, что и первая вкладка.

Вкладка добавляется с помощью следующей команды:

<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>

Я пытался сделать это программно, но у меня не было лучших результатов!


person Seb    schedule 26.09.2013    source источник


Ответы (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>

Удачи! :)

person user3309342    schedule 14.02.2014