jsf 2.0更新ui中的特定元素:重复

时间:2013-10-17 09:23:41

标签: ajax jsf primefaces jstl

我问我如何才能更新循环的特定元素?

e.g。

<h:form>
    <ui:repeat var="element" value="#{bean.elements}" varStatus="status">
         <h:outputtext value="#{element.text}" id="#{element.id}" />
         <p:commandLink update="#{element.id}" >
             <h:outputtext value="UpdateTextField #{element.id}" />
         </p:commandLink>
    </ui:repeat>
</h:form>

我知道status.index自视图呈现以来不起作用。此外,“动态”索引设置也不起作用,因为它的视图呈现...但是如何在单击按钮时实现它,它更新(ajax)输出文本?这只能用c:forEach吗?

它的ViewScoped和表单必须在循环之外。否则我会用update =“@ form”解决它,但这里不可能

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

由于ui:repeatc:forEach都为元素生成不同的动态组件ID,因此您无法保证从外部更新所有生成项目中的单个项目。

我认为解决此类问题的最佳方法是在h:panelGroupui:repeat周围放置c:forEach并更新h:panelGroup本身。