在'ui'中找到组件内部:重复

时间:2010-12-15 20:25:12

标签: java jsf jsf-2

我正在尝试获取UIRepeat的子元素,我希望它包含所有迭代的内容。但是,我只看到一次迭代的内容。

我想我必须遍历com.sun.faces.facelets.component.UIRepeat对象,但是如何做到这一点?我看到有一个getSize()函数,但setIndex()privateDataModel包含对象,而不是元素。

此外,我在参考文档中找不到com.sun.faces.facelets.component.UIRepeat类:http://download.oracle.com/docs/cd/E17802_01/j2ee/javaee/javaserverfaces/2.0/docs/pdldocs/facelets/ui/repeat.html

主要问题是我一直在用<h:selectOneRadio>迭代地显示<ui:repeat>个元素;我想从托管bean中更改<h:selectOneRadio>元素的值。

提前致谢, 丹尼尔

2 个答案:

答案 0 :(得分:0)

我现在不需要您的代码或需求,但不是重复,您可以尝试c:forEach。后者在另一个渲染阶段工作:forEach重复forEach块内的html内容,而repeat实际重复xhtml内容(然后呈现)。

答案 1 :(得分:0)

  

我想从托管bean更改<h:selectOneRadio>元素的值。

只需从托管bean内部直接访问其value属性。

假设

<ui:repeat value="#{bean.radios}" var="radio">
    <h:selectOneRadio value="#{radio.selected}">
        <f:selectItems value="#{radio.selectItems}" />
    </h:selectOneRadio>
<ui:repeat>

只是做

radios.get(index).setSelected(newValue);