【发布时间】:2012-04-28 15:45:13
【问题描述】:
您如何解决这个常见问题?假设您需要根据一些 Ajax 事件(但不是整个表单)呈现几个表单元素,并且您不想破坏表单布局。 这是示例代码
<h:form>
<h:panelGrid columns="2">
text1
<h:inputText value="asasd" />
text2
<h:inputText value="asdasd" />
<p:selectBooleanCheckbox value="#{bean.myBoolean}">
<p:ajax update="someId" listener="{bean.changeValueOfMyBoolean"} />
</p:selectBooleanCheckbox>
<h:outputText value="asdas"rendered="#{bean.myBoolean}" />
<h:inputText value="bean value" rendered="#{bean.myBoolean"} />
...few more some elements
所以我只看到两个选项,将它们放在 <h:panelGroup> 中,给它们一个 id 并在里面创建另一个 <h:panelGrid> (这会破坏表单布局,因为新渲染的元素会有不同的缩进)或给每个元素它是自己的具有不同 ID 的 paneGroup,然后在 <p:ajax>使用类似 update=id1, id2, ... 的东西,但在我看来这也不是一个好的解决方案。
那么你的方法是什么,有更好的方法吗?
【问题讨论】:
标签: forms jsf layout jsf-2 primefaces