我正在使用 Primefaces 3.4(也尝试过 3.3)和 Mojarra 2.1.7。但是我在更新 ap:tabView 中的动态选项卡时遇到了问题。
我有 2 个按钮,应该添加一个额外的选项卡。第一个按钮在 p:tabView 之外。单击此按钮时,将调用支持 bean,更新 p:tabView,并显示新选项卡。但是当我单击第二个按钮时,它位于该 tabView 的选项卡内,会调用支持 bean,但 tabView 没有更新。
这种缺乏更新仅发生在动态选项卡中。当我将给定的示例修改为只有一个选项卡并显示一个在单击按钮时发生变化的值时,两个按钮都会更新 tabView,并显示新的值。所以这是一个只发生在动态选项卡中的问题。
这是我的代码。
<f:view contentType="text/html">
<h:form>
<p:commandButton value="press me" action="#{idTestBean.addTab}" update=":ApplicationTab"/>
</h:form>
<p:tabView id="ApplicationTab" cache="false" dynamic="false" var="tab" value="#{idTestBean.tabList}">
<p:tab title="tab" closable="false" >
<p:panel>
<h:form>
<p:commandButton value="press me" action="#{idTestBean.addTab}" update=":ApplicationTab"/>
</h:form>
#{idTestBean.count}
</p:panel>
</p:tab>
</p:tabView>
</f:view>
不同的选项卡包含需要单独提交的单独表格。因此我有不止一种形式的方法。