En JSF, nous pouvons lier HtmlDataTable
au bean backing et obtenir les données de ligne. Mais ui:repeat
n'a même pas d'attribut de liaison. Alors, comment savoir quelle ligne (élément) est cliquée dans ui:repeat
?Comment savoir quel élément est cliqué dans ui: repeat?
2
A
Répondre
8
Soit utiliser 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>
avec
private List<Item> items;
private Item item;
public void submit() {
System.out.println(item);
}
ou d'une méthode d'action vient de mettre au point itérée
<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>
Soit cas, vous devez vous assurer que le même items
est conservée dans la demande ultérieure.
Les deux façons d'ailleurs fonctionne également dans un h:dataTable
.