我有一个带有两个标签的标签视图。每个选项卡都有一个如下示例所示的表单:
<p:tabView id="WorkSpace">
<p:tab title="tab1" closable="true" id="tab_1" >
<h:form id="formA">
<h:outputText value="Reference: " />
<p:inputText required="true" value="#{testBean.reference}" requiredMessage="This field is required"/>
<h:outputText value="Age: " />
<p:inputText required="true" value="#{testBean.age}" requiredMessage="This field is required"/>
<p:commandButton process="@this" action="#{testBean.testA}" value="OK">
</h:form>
</p:tab>
<p:tab title="tab2" closable="true" id="tab_2" >
<h:form id="formB">
<h:outputText value="Name: " />
<p:inputText required="true" value="#{testBean.name}" requiredMessage="This field is required"/>
<p:commandButton process="@this" action="#{testBean.testB}" value="OK">
</h:form>
</p:tab>
</p:tabView>
我的问题是我想在从标签页更改为另一个标签时保持表单状态,这样说: 当我填写输入&#34;参考&#34;在formA中,将tab更改为formB(不单击OK按钮)然后返回formA,字段引用不应为空。
我知道表单没有被处理,并且没有更新支持bean,所以我尝试使用一个处理formA onTabChange事件的remoteCommand来更新支持Bean:
<p:remoteCommand name="saveState" action="#{testBean.saveState}" process="@this" />
但是,表格正在验证,(输入年龄和参考应填写)。尝试添加immediate = true以跳过验证时,不会在backingBean上更新任何字段。
有没有办法做到这一点? 感谢。