我的问题是,我想要有条件地渲染form2。这与另一个form1的ajax更新事件冲突,该事件应该触发form2的呈现。
<h:form id="form1">
<h:selectOneMenu id="selectedGroupId" label="#{msgs.group_group}" value="#{groupBean.selectedGroupId}">
<p:ajax event="change" listener="#{groupBean.selectGroupEvent}" update=":form1"/>
<f:selectItems value="#{groupBean.availableGruppen}" />
</h:selectOneMenu>
</h:form>
<h:form id="form2" rendered="#{not empty groupBean.groupDto}">
<p:panelGrid id="groupEditGrid">
...
</p:panelGrid>
</h:form>
有没有办法在不将渲染条件放在form2的组件中的情况下执行此操作?
感谢
强尼
答案 0 :(得分:3)
您无法更新页面上没有的组件。但是您可以将表单包装在{em> 的h:panelGroup
中,然后更新包装器。
示例:
<h:form id="form1">
<h:selectOneMenu id="selectedGroupId" label="#{msgs.group_group}"
value="# {groupBean.selectedGroupId}">
<p:ajax event="change" listener="#{groupBean.selectGroupEvent}"
update=":formWrapper"/>
<f:selectItems value="#{groupBean.availableGruppen}" />
</h:selectOneMenu>
</h:form>
<h:panelGroup id="formWrapper>
<h:form id="form2" rendered="#{not empty groupBean.groupDto}">
<p:panelGrid id="groupEditGrid">
...
</p:panelGrid>
</h:form>
</h:panelGroup>