J'ai un mélange de colonnes dans mon htmltable: 1 colonne est un actionlistener, 2 colonnes sont des actions et d'autres colonnes sont sortie simple.
JSF actionListener est appelé plusieurs fois à partir de HtmlTable
<h:dataTable styleClass="table" id="orderTable" value="#{table.dataModel}" var="anOrder" binding="#{table.dataTable}" rows="#{table.rows}" <an:listenerColumn backingBean="${orderEntry}" entity="${anOrder}" actionListener="closeOrder"/> <an:column label="#{msg.hdr_orderStatus}" entity="#{anOrder}" propertyName="orderStatus" /> <an:actionColumn backingBean="${orderEntry}" entity="${anOrder}" action="editOrder" /> <an:actionColumn backingBean="${orderEntry}" entity="${anOrder}" action="viewOrder"/> ....
J'utilise des balises personnalisées, mais il est le même comportement si j'utilise les balises de colonne par défaut.
J'ai remarqué un effet très étrange: lorsque vous cliquez sur l'actionlistenercolumn, l'actionevent est traitée 3 fois. Si je supprime les deux colonnes d'action, l'événement action n'est géré qu'une seule fois.
Le haricot a réussi sessionscope, méthode de haricot:
public void closeOrder(ActionEvent event) { OrdersDto order; if ((order = orderRow()) == null) { return; } System.out.println("closeOrder() 1 "); orderManager.closeOrder(); System.out.println("closeOrder() 2 "); }
l'imprime console the'debug » texte 3 fois.