我想询问是否可以在a4j:repeat标签内使用var属性,作为内部组件的绑定。例如
<a4j:repeat value="#{myController.bindingComponents}" var="component">
<h:panelGroup binding="#{component}"/>
</a4j:repeat>
我已经尝试过了,但是在评估绑定表达式时,组件为null。
答案 0 :(得分:1)
不,那是不可能的。 binding
属性在视图构建时评估(如id
属性和所有标记处理程序),而value
<a4j:repeat>
作为UI组件在视图中评估渲染时间。因此,binding
属性评估时,#{component}
为null
,因为<a4j:repeat>
尚未在该点运行。
如果你再想一想,它应该完全合理:JSF组件树中只有一个 <h:panelGroup>
,它会多次呈现其输出。正如您所期望的那样,以这种方式生成多个<h:panelGroup>
组件并不是真的。
为了达到您所考虑的特定功能要求,您可能希望使用视图构建时迭代标记,例如JSTL <c:forEach>
。