Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 当任何选项卡(Richface 3.3.4)中发生事件时,会刷新tabpanel的所有选项卡_Jsf_Richfaces_Tabpanel - Fatal编程技术网

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”