我使用primefaces版本5.3和jsf版本2.2.6。
我为tabview实现了tabClose ajax事件,但问题是对于第一个选项卡,没有触发tabClose事件并且没有调用方法remove,对于所有其他选项卡,它是并且它可以工作我无法理解为什么。 此外,如果我尝试关闭第一个标签,则所有标签都会关闭。
代码如下所示:
<p:tabView id="tabs" activeIndex="#{mainPage.index}">
<p:ajax event="tabClose" listener="#{mainPage.remove}" update="formTabs" />
<p:ajax event="tabChange" listener="#{mainPage.changeTab}" update="formTabs" />
<c:forEach items="#{mainPage.tabs}" var="tab" varStatus="loop">
<p:tab title="#{tab.title}" closable="true">
<f:subview id="tab#{loop.index}">
<ui:debug />
<ui:include src="#{tab.url}">
<ui:param name="focusedTab" value="#{tab.id}" />
</ui:include>
</f:subview>
</p:tab>
</c:forEach>
</p:tabView>
有人知道原因是什么吗?
答案 0 :(得分:0)
通过在tabView中添加dynamic =“true”解决了上述问题。但在此之后它出现了另一个障碍,当制表机之间切换时,所有标签都消失了。这是通过添加cache =“false”
来解决的