gpt4 book ai didi

java - 从 HtmlTable 中多次调用 JSF actionListener

转载 作者:行者123 更新时间:2023-11-29 09:25:11 25 4
gpt4 key购买 nike

我的 htmltable 中有多个列:1 列是 Action 监听器,2 列是 Action ,其他列是简单输出。

<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 个操作列,则只处理一次操作事件。
托管bean有sessionscope,bean方法:

    public void closeOrder(ActionEvent event) {        OrdersDto order;        if ((order = orderRow()) == null) {            return;        }        System.out.println("closeOrder() 1 ");        orderManager.closeOrder();        System.out.println("closeOrder() 2 ");    }

控制台打印'debug'文本3次。

最佳答案

检查 java 方法中的事件(名称?)。

我认为您正在向整个表格添加监听器和事件。相反,您应该通过将它们嵌套到列声明中来将它们添加到列中。

<h:column> 
<h:commandLink value="Edit" .../>
</h:column>

关于java - 从 HtmlTable 中多次调用 JSF actionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2942206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com