Java JSF和ui中的嵌套ajax:重复

Java JSF和ui中的嵌套ajax:重复,java,ajax,jsf,jsf-2,facelets,Java,Ajax,Jsf,Jsf 2,Facelets,罪魁祸首在这里: <h:selectBooleanCheckbox binding="#{showMore}"> <f:ajax render="inner" /> </h:selectBooleanCheckbox> <h:panelGrid id="inner"> <h:outputText value="always" /> <h:outputText value="hidden" rend

罪魁祸首在这里:

<h:selectBooleanCheckbox binding="#{showMore}">
     <f:ajax render="inner" />
 </h:selectBooleanCheckbox>
 <h:panelGrid id="inner">
     <h:outputText value="always" />
     <h:outputText value="hidden" rendered="#{not empty showMore.value and showMore.value}" />
 </h:panelGrid>

更新:根据评论,使用
ui:repeat
在这里不应该构成问题。更重要的是,我已经将您的示例复制粘贴到我的游乐场环境中,并且效果良好(在Tomcat6.0.29上使用Mojarra 2.0.3)。顺便说一句,这个豆子有标记。也许是您的,并且
ui:repeat
的值的加载是基于一些请求范围的条件,而这些条件在后续的ajax调用中没有保留

另见:
  • -解释
    @ViewScoped
  • -一点历史

我很难看到代码中的问题并将其与您的问题消息关联起来。你不是过分简化了代码片段吗?我希望
result\u表
的另一个
rendered
属性。考虑在XHTML文件和管理bean中发布一个完整的工作,它包含了所需的最小代码来重现问题。不幸的是,我的代码在Intranet上的另一台计算机上,我不能发布完整的代码。我更改了代码并重新措辞了问题,希望它更清晰。啊,对了,您从原始示例中省略了
id=“inner”
。现在你的意思更清楚了。是的,就是这样!非常感谢。我将bean更改为
@ViewScoped
,它成功了。我应该仔细阅读如何为我的bean设置正确的范围。
<h:selectBooleanCheckbox binding="#{showMore}">
     <f:ajax render="inner" />
 </h:selectBooleanCheckbox>
 <h:panelGrid id="inner">
     <h:outputText value="always" />
     <h:outputText value="hidden" rendered="#{not empty showMore.value and showMore.value}" />
 </h:panelGrid>
<h:panelGrid id="inner" rendered="#{not empty showMore.value and showMore.value}">
    <table></table>
</h:panelGrid>
<h:panelGroup id="inner">
    <h:panelGrid rendered="#{not empty showMore.value and showMore.value}">
        <table></table>
    </h:panelGrid>
</h:panelGroup>