Jsf 当任何选项卡(Richface 3.3.4)中发生事件时,会刷新tabpanel的所有选项卡
我们有一个Jsf 当任何选项卡(Richface 3.3.4)中发生事件时,会刷新tabpanel的所有选项卡,jsf,richfaces,tabpanel,Jsf,Richfaces,Tabpanel,我们有一个tabPanel,它有多个选项卡。在任何选项卡中执行任何事件(例如,单击选项卡1中的“ajaxSubmit”按钮)时,所有选项卡都会刷新,这会导致性能问题(例如,始终从选项卡3调用“table”值的getter) 我们试图将每个选项卡的内容包装在中,但仍会调用tab3中组件的getter 请在下面找到示例代码段: <r:tabPanel id="tabWorkingPanel" styleClass="otTMcontainer" selectedTab="#{tabHandle
tabPanel
,它有多个选项卡。在任何选项卡中执行任何事件(例如,单击选项卡1中的“ajaxSubmit”按钮)时,所有选项卡都会刷新,这会导致性能问题(例如,始终从选项卡3调用“table”值的getter)
我们试图将每个选项卡的内容包装在
中,但仍会调用tab3中组件的getter
请在下面找到示例代码段:
<r:tabPanel id="tabWorkingPanel" styleClass="otTMcontainer" selectedTab="#{tabHandlerBean.activeTab}">
<rich:tab id="tab1">
<h:commandButton value="ajaxSubmit"/>
</rich:tab>
<rich:tab id="tab2" />
<rich:tab id="tab3">
<rich:dataTable id="table" value="#{bean.someValue}">...</rich:dataTable>
</rich:tab>
</r:tabPanel>
...
我认为您应该使用,以便只刷新相关选项卡。我认为您还应该将每个选项卡的内容包装成一个表单,这样就不会在每次提交时都提交所有内容,尽管您可能正试图这样做。我会仔细阅读文档,以确保您正确使用这些
我没有使用过RichFaces,所以我不确定这是否有效,但类似的方法也适用于PrimeFaces
可能有用。他在讨论PrimeFaces,但我认为同样的概念也适用。看起来你误解了
h:commandButton
的工作原理h:commandButton
默认情况下不支持ajax,我甚至不完全相信它能很好地与Richfaces组件配合使用(Richfaces有一些奇怪之处)。将该命令按钮替换为a4j:commandButton
,设置execute=“@this”
和render=“tab1”