【问题标题】:Finding components 'inside' ui:repeat在 ui:repeat 中查找组件
【发布时间】:2011-05-26 04:02:01
【问题描述】:

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

我想我必须遍历com.sun.faces.facelets.component.UIRepeat 对象,但是该怎么做呢?我看到有一个getSize() 函数,但setIndex()private,而DataModel 包含对象,而不是元素。

我在参考文档中也找不到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

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

提前致谢, 丹尼尔

【问题讨论】:

    标签: java jsf jsf-2


    【解决方案1】:

    我想更改托管 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);
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-11-20
        • 2012-03-26
        • 2013-03-19
        • 2012-03-30
        • 1970-01-01
        • 2017-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多