0

我想问是否可以在 a4j:repeat 标记中使用 var 属性作为内部组件的绑定。例如

<a4j:repeat value="#{myController.bindingComponents}" var="component">
  <h:panelGroup binding="#{component}"/>
</a4j:repeat>

我已经尝试过了,但是在评估绑定表达式时组件为空。

4

1 回答 1

1

不,那是不可能的。属性是在视图构建时评估的binding(就像id属性和所有标记处理程序一样),而作为 UI 组件的 of 是在视图渲染时评估的value<a4j:repeat>所以在binding属性评估的那一刻,#{component}is null,因为<a4j:repeat>那时还没有运行。

如果您再想一想,它应该完全有道理:JSF 组件树中只有一个 <h:panelGroup>会多次呈现其输出。<h:panelGroup>正如您所期望的那样,以这种方式生成多个组件是不正确的。

为了实现您心目中的特定功能需求,您可能希望改用视图构建时迭代标记,例如 JSTL <c:forEach>

也可以看看:

于 2012-07-10T18:48:37.947 回答