首先让我说我显然对ajax / jsf很新,所以请原谅。首先,我一直在阅读一些richFaces文档,我仍然不清楚'render'和'reRender'之间的区别。
我想要实现的是具有默认隐藏/不呈现的两个“区域”的页面。当用户选择<h:selectBooleanCheckbox>
时,这将触发对应于此BooleanCheckbox的“区域”的渲染。这似乎应该是更多的工作,也许我错过了一些非常基本的东西。
这是我的代码。
<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:form>
我试图控制渲染的“区域”如下......
<h:panelGroup id="noteArea" rendered="#{noteController.saveNote}" layout="block">
这也嵌套在与h:form
<h:selectBooleanCheckbox>
内
请帮助,ajax开始让我疯了!
提前非常感谢!!!!
答案 0 :(得分:0)
reRender属性将在回发时呈现许多客户端ID。这应该是客户端ID,而不是noteArea
的服务器ID。
除非您在h:form
元素中指定prependId
为false,否则表单ID将位于表单中的panelGroup标识之前,以显示您的唯一客户端ID。
form1:noteArea
此外,我认为您不希望在复选框上将immediate
设置为true。