您好我使用的是primefaces版本3.2我正在使用的ui布局是tabview,在里面,我是手风琴面板,在手风琴的每个标签内,我有两种形式。
就像 tabview> tab> accordionpanel> tab> form1和
tabview>标签> accordionpanel>标签> form2等等......
现在,问题是在上面的场景中没有调用活动索引操作。但是,当我从手风琴面板选项卡中删除froms时,它被调用并且工作正常。
这是我的xhtml tabview代码
<p:tabView id="tabView" activeIndex="#{profileInfoManagedBean.myCurrentTab}" >
<p:ajax event="tabChange" listener="#{profileInfoManagedBean.tabIsChanged}" />
<p:tab id="locationInfoTab" title="Location Info">
<p:accordionPanel id="aPanel">
<p:tab id="tab1" title="Country">
<h:form id="form1">
<p:growl id="growl" life="5000" />
<p:messages id="messages" />
<h:panelGrid columns="3" cellpadding="5" cellspacing="5">
<p:column>
<h:outputLabel for="country" value="Country: "></h:outputLabel>
</p:column>
<p:column>
<p:inputText id="country" value="#{profileInfoManagedBean.country.country}" required="true" label="City">
<f:validateLength minimum="5" maximum="20" />
<p:ajax event="blur" update="msg1"></p:ajax>
</p:inputText>
</p:column>
<p:column>
<p:message id="msg1" for="country" display="icon"></p:message>
</p:column>
</h:panelGrid>
<p:commandButton type="submit" action="#{profileInfoManagedBean.addCountry}" value="Save" ajax="true" ></p:commandButton>
</h:form>
答案 0 :(得分:0)
你想在locationInfoTab或手风琴tab1上使用活动索引吗?
我测试并修改了一些代码以获得两者的活动索引:
<h:form id="tabViewForm">
<p:tabView id="tabView" activeIndex="#{profileInfoManagedBean.myCurrentTab}" >
<p:ajax event="tabChange" listener="#{profileInfoManagedBean.tabIsChanged}" update=":tabViewForm"/>
<p:tab id="locationInfoTab" title="Location Info">
<p:accordionPanel id="aPanel" activeIndex="#{profileInfoManagedBean.myCurrentAccordionTab}">
<p:ajax event="tabChange" listener="#{profileInfoManagedBean.tabIsChanged}" update=":tabViewForm" />
<p:tab id="tab1" title="Country">
<h:form id="form1">
.
.
.
<p:inputText id="country" value="#{profileInfoManagedBean.country.name}" required="true" label="Country">
<f:validateLength minimum="5" maximum="20" />
<p:ajax event="blur" update="country msg1 growl messages"></p:ajax>
</p:inputText>
.
.
.
</p:accordionPanel>
</p:tab>
<p:tab id="tab2" title="Tab Information">
</p:tab>
</p:tabView>
</h:form>
我向tabion面板添加了tab change事件,在标签更改时更新了tabViewForm,在输入更改时更新了消息,并添加了另一个选项卡进行测试。
我认为最初的问题是因为输入字段上的验证器导致错误,但视图没有更新以显示消息。
通过更改选项卡更改时的表单,验证程序错误消息是明确的。
我希望这会对你有所帮助。