Jsf Richfaces 4选项卡面板actionListener在第一次调用时不工作
我在使用JSF2在Richfaces 4中创建工作选项卡面板时遇到问题。Jsf Richfaces 4选项卡面板actionListener在第一次调用时不工作,jsf,richfaces,Jsf,Richfaces,我在使用JSF2在Richfaces 4中创建工作选项卡面板时遇到问题。 每次我选择一个选项卡时,我都可以看到ajax请求已发送,但它没有在我的支持bean中调用actionListener方法(我在调试模式下运行时知道这一点)。 当我再次选择该选项卡时,它将工作(我再次处于调试模式,可以看到它进入myBean.activateTab方法) TabPanelTest.xhtml <h:form id="myFormTest"> <rich:tabPanel id="m
每次我选择一个选项卡时,我都可以看到ajax请求已发送,但它没有在我的支持bean中调用actionListener方法(我在调试模式下运行时知道这一点)。
当我再次选择该选项卡时,它将工作(我再次处于调试模式,可以看到它进入myBean.activateTab方法) TabPanelTest.xhtml
<h:form id="myFormTest">
<rich:tabPanel id="myTabPanel" value="Tab1" activeItem="#{myBean.tabState.selectedTab}"
switchType="ajax">
<rich:tab id="Tab1" label="Tab 1" actionListener="#{myBean.activateTab}">
<ui:include src="myTab.xhtml">
<ui:param name="filterText" value="Tab 1" />
</ui:include>
</rich:tab>
<rich:tab id="Tab2" label="Tab 2" actionListener="#{myBean.activateTab}">
<ui:include src="myTab.xhtml">
<ui:param name="filterText" value="Tab 2" />
</ui:include>
</rich:tab>
</rich:tabPanel>
</h:form>
非常感谢您的帮助。
好吧……我最终自己找到了解决办法 我从每个rich:tab中删除了actionListener,而是使用a4j:ajax来侦听条目更改
<h:form id="myFormTest">
<rich:tabPanel id="myTabPanel" value="Tab1" activeItem="#{myBean.tabState.selectedTab}"
switchType="ajax">
<a4j:ajax event="itemchange" onerror="handleAjaxError" listener="#{myRequestsBean.activateTab}" render="myTabPanel" />
<rich:tab id="All" header="#{messages['test.allTab']}" name="#{messages['test.allTab']}">
<ui:include src="myTab.xhtml">
<ui:param name="filterText" value="{messages['MyRequests.allFilter']}" />
</ui:include>
</rich:tab>
<rich:tab id="Pending" header="#{messages['MyRequests.pendingTab']}" name="#{messages['MyRequests.pendingTab']}">
<ui:include src="myTab.xhtml">
<ui:param name="filterText" value="#{messages['MyRequests.pendingFilter']}" />
</ui:include>
</rich:tab>
</rich:tabPanel>
</h:form>
您是否尝试过为tabPanel使用itemChangeListener属性。这似乎是处理这件事的预期方式,尽管我从来没能让它表现出来。
<h:form id="myFormTest">
<rich:tabPanel id="myTabPanel" value="Tab1" activeItem="#{myBean.tabState.selectedTab}"
switchType="ajax">
<a4j:ajax event="itemchange" onerror="handleAjaxError" listener="#{myRequestsBean.activateTab}" render="myTabPanel" />
<rich:tab id="All" header="#{messages['test.allTab']}" name="#{messages['test.allTab']}">
<ui:include src="myTab.xhtml">
<ui:param name="filterText" value="{messages['MyRequests.allFilter']}" />
</ui:include>
</rich:tab>
<rich:tab id="Pending" header="#{messages['MyRequests.pendingTab']}" name="#{messages['MyRequests.pendingTab']}">
<ui:include src="myTab.xhtml">
<ui:param name="filterText" value="#{messages['MyRequests.pendingFilter']}" />
</ui:include>
</rich:tab>
</rich:tabPanel>
</h:form>