使用ui的primefaces中的动态选项卡内容:包括不工作

时间:2013-03-28 13:56:27

标签: jsf primefaces facelets

我无法在tabView中使用ui:include。我正在尝试使用包含的Facelet制作动态标签。

这是我的代码:

<p:tabView id="panelGl" var="tabContent" value="#{mainPageBackingBean.tabs}" widgetVar="panelGlJs" style="height: 100%;" dynamic="true" >
            <p:ajax event="tabClose" listener="#{mainPageController.onTabClose}" oncomplete="questionDialogWV.show()" update="@(this) :questionForm:questionFormPanel" />
            <p:ajax event="tabChange" onstart="setActive()" update="@(this)" />         
            <p:tab title="#{tabContent.title}" titletip="#{tabContent.description}" closable="true">
                <ui:include src="#{mainPageBackingBean.tabContents}" />
            </p:tab>
</p:tabView>

#{mainPageBackingBean.tabContents}运行时值指向此Facelet:

<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
 xmlns:ui="http://java.sun.com/jsf/facelets"
 xmlns:f="http://java.sun.com/jsf/core"
 xmlns:h="http://java.sun.com/jsf/html"
 xmlns:fn="http://java.sun.com/jsp/jstl/functions"
 xmlns:p="http://primefaces.org/ui">
 <p:panel>
    <h:form> 
        <p:commandButton id="testEmail" value="" process="@this" actionListener="#{communicationChannelsController.testEmailChannel()}"/>
    </h:form>
 </p:panel>
</ui:composition>

当我在ui:include之外使用上述p:tabView时,它正常工作(我可以毫无问题地调用communicationChannelsController.testEmailChannel())。此外,当我在p:tab内复制上述文件的内容时,一切正常。

问题是,当p:tabui:include组合不起作用时,不会调用此bean方法。

在我的示例中使用mainPageBackingBean等导航bean创建动态标签的最佳方法是什么?

0 个答案:

没有答案