我有一个JSF应用程序,其中包含几个主要组件和每个组件树。
在某个事件(值更改)上,我想为其中一个组件重新整理组件树。
例如:我可以在这里一次性重新呈现组件1,2和3:
<h:panelgroup id="1">
<h:panelgroup id="2">
<h:panelgroup id="3">
<h:panelgroup/>
<h:panelgroup/>
<h:panelgroup/>
<h:commandButton rerender="1*"> <--- Made up code.
这可能吗?
另一个想法 - 我可以使用通配符恢复吗? (I.E - ReRender所有ID开头或包含的组件:“UpdateMe”)
谢谢!
答案 0 :(得分:3)
是的,你可以重新渲染整棵树。
您不能使用通配符(afaik),但可以使用表达式 - 例如
reRender="#{yourBean.yourRenderExpression}"
可以将逗号分隔的列表(或Collection
)元素返回给reRender。
通常,您必须传递遵循UIComponent.findComponent(..)
算法的参数。
请注意,<h:commandButton>
没有rerender
属性。它可以是<a4j:commandLink
和reRender
(大写),或者您应该使用jsf 2中的<f:ajax>
。