如何使用Ajax a4j重新呈现panelGroup:支持

如何使用Ajax a4j重新呈现panelGroup:支持,ajax,jsf,richfaces,Ajax,Jsf,Richfaces,首先,我要说我对ajax/jsf显然非常陌生,所以请原谅。首先,我已经阅读了一些richFaces文档,但仍然不清楚“render”和“reRender”之间的区别 我试图实现的是一个包含两个“区域”的页面,默认情况下隐藏/不呈现。当用户选择时,将触发对应于此布尔复选框的“区域”的渲染。这似乎比它应该做的工作多得多,也许我错过了一些非常基本的东西 这是我的密码 <h:outputLabel for="saveNote" value="Create Note "/>

首先,我要说我对ajax/jsf显然非常陌生,所以请原谅。首先,我已经阅读了一些richFaces文档,但仍然不清楚“render”和“reRender”之间的区别

我试图实现的是一个包含两个“区域”的页面,默认情况下隐藏/不呈现。当用户选择
时,将触发对应于此布尔复选框的“区域”的渲染。这似乎比它应该做的工作多得多,也许我错过了一些非常基本的东西

这是我的密码

<h:outputLabel for="saveNote" value="Create Note "/>            
<h:selectBooleanCheckbox id="saveNote" value="#{noteController.saveNote}" immediate="true" >            
    <a4j:support event="onchange" reRender="noteArea"/>                         
</h:selectBooleanCheckbox>
<h:outputLabel for="sendEmail" value="Send Email "/>    
<h:selectBooleanCheckbox id="sendEmail" value="#{noteController.sendEmail}" immediate="true">
    <a4j:support event="onchange" reRender="emailArea"/>                                                        
</h:selectBooleanCheckbox>

这是嵌套在

我试图控制渲染的“区域”如下所示

<h:panelGroup id="noteArea" rendered="#{noteController.saveNote}" layout="block"> 

这也嵌套在与
相同的
h:form

请帮帮我,阿贾克斯开始让我发疯了


提前非常感谢

RERERENDER属性将在回发时提供许多客户端ID。这应该是客户端id,而不是
notea
的服务器id

除非在
h:form
元素中指定
prependId
为false,否则表单id将位于表单中panelGroup id的前面,以生成唯一的客户端id

form1:noteArea

另外,我认为您不想在复选框中将
立即
设置为true。

非常感谢您的回复!这是一个愚蠢的错误,我添加了
entryForm:notea
并删除了
immediate=true
,它仍然不起作用,我想我还有一些其他的初学者问题,还有其他建议吗?再次感谢您的快速回复@请尝试检查页面上的标记,查看
panelGroup
的客户机id到底是什么。它将在页面上呈现为div。此外,请尝试在布尔管理属性的setter中添加日志语句,以查看它们是否真正正确设置。再次感谢!在检查了元素之后,panelGroup实际上是一个组件,因为它嵌套在paneGrid中,我想是吧?我在div上做了一级的重播,一个rich:form,现在效果很好,再次感谢你!