2
我在我的htmltable中有一列混合:1列是一個actionlistener,2列是動作,其他列是簡單的輸出。
JSF actionListener從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"/> ....
我使用自定義的標籤,但它是相同的行爲,如果我使用默認列標籤。
我注意到了一個非常奇怪的效果:當點擊actionlistenercolumn時,actionevent被處理3次。如果我刪除2個動作列,那麼actionevent只處理一次。
的管理bean有sessionscope,豆方法:
public void closeOrder(ActionEvent event) { OrdersDto order; if ((order = orderRow()) == null) { return; } System.out.println("closeOrder() 1 "); orderManager.closeOrder(); System.out.println("closeOrder() 2 "); }
控制檯打印the'debug」文字的3倍。
<一個:listenerColumn ...是自定義標籤和被實現爲: 的 h:commandButton> ui:composition> –
Rose
2010-05-31 12:10:07