我问我如何才能更新循环的特定元素?
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”解决它,但这里不可能
感谢您的帮助!
答案 0 :(得分:2)
由于ui:repeat
和c:forEach
都为元素生成不同的动态组件ID,因此您无法保证从外部更新所有生成项目中的单个项目。
我认为解决此类问题的最佳方法是在h:panelGroup
或ui:repeat
周围放置c:forEach
并更新h:panelGroup
本身。