我如何知道在ui中点击哪个元素:重复?
问题描述:
在JSF中,我们可以将HtmlDataTable
绑定到支持bean并获取行数据。但ui:repeat
甚至没有绑定属性。那么,如何知道ui:repeat
中哪个行(元素)被点击?我如何知道在ui中点击哪个元素:重复?
答
要么使用f:setPropertyActionListener
<h:form>
<ui:repeat value="#{bean.items}" var="item">
<h:outputText value="#{item.value}">
<h:commandButton value="submit" action="#{bean.submit}">
<f:setPropertyActionListener target="#{bean.item}" value="#{item}"/>
</h:commandButton>
</ui:repeat>
</h:form>
在迭代项目
<h:form>
<ui:repeat value="#{bean.items}" var="item">
<h:outputText value="#{item.value}">
<h:commandButton value="submit" action="#{item.submit}" />
</ui:repeat>
</h:form>
两种情况
private List<Item> items;
private Item item;
public void submit() {
System.out.println(item);
}
或者只是把操作方法,您需要确保同一items
被保留在随后的请求。
顺便提一下,这两种方法也适用于h:dataTable
。