首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在返回非空的方法上执行操作时,避免导航的最佳方法是什么?

在返回非空的方法上执行操作时,避免导航的最佳方法是什么?
EN

Stack Overflow用户
提问于 2013-11-22 12:14:53
回答 1查看 39关注 0票数 1

我需要从java.util.Set中删除一个元素,我在h:dataTable中迭代。很简单对吧?这就是我所拥有的(com是我的集合,endpoint是迭代变量):

代码语言:javascript
复制
<a4j:commandButton image="/img/delete.png"
    action="#{person.com.remove(endpoint)}"
    execute="@this" render="myTable" />

对于JSF-2隐式导航,布尔返回值通过.toString()转换并用作导航结果,这是没有意义的。

当然,我可以引入另一个bean方法,它只会吞噬返回值,但这似乎是不必要的重复。我能避免那样做吗?如果是的话,怎么做?

环境有丰富的面和全方位,所以任何使用方便的功能,从那里也是罚款。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-22 13:24:42

(Ab)使用actionListener。它不强制导航。

代码语言:javascript
复制
<a4j:commandButton image="/img/delete.png"
    actionListener="#{person.com.remove(endpoint)}"
    execute="@this" render="myTable" />

唯一的问题可能是操作侦听器上的异常不是以相同的方式处理,而是将它们视为绕过所有剩余操作侦听器和操作(如果有的话)的指示。因此,它们不会在错误页面中结束。不过,在这种特殊情况下,remove()方法不太可能导致异常。如果集合是空的,操作方法就永远不会被排在第一位(或者您的代码必须是线程不安全的,同时该项必须被队列和操作调用之间的另一个线程删除,但这不是JSF问题)。

另请参阅:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20144687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档