JSF action、actionlistener、onClick之间的区别[重复]

Posted

技术标签:

【中文标题】JSF action、actionlistener、onClick之间的区别[重复]【英文标题】:JSF difference between action, actionlistener, onClick [duplicate] 【发布时间】:2014-02-21 16:58:05 【问题描述】:

我在我的项目中使用 JSF。我正在使用 PrimeFaces 的上下文菜单。我在p:menuItem 中看到我们有actionactionListeneronclick 方法。所以我的问题是:我什么时候必须使用actionactionListneronclick,执行顺序是什么?

【问题讨论】:

至少部分回答:***.com/questions/3909267/… 另见:其他部分:***.com/a/9115951/757071 【参考方案1】:

以前有人问过这个问题。 当您想要调用支持 bean 中的方法时,使用操作。例如

action="#myBean.myMethod"

bean 的代码是这样的

@ManagedBean(name = "myBean", eager = true)
@ViewScoped
public class MyBean

myMethod()
// your method code here



除了由事件触发之外,动作侦听器如何做同样的事情

myMethod(Event e)
// your method code here

请注意,事件可以是任何类型。

onclick 在发送 ajax 请求之前工作我对它的了解不多...我只将它用于 UI 目的,例如在单击按钮时关闭对话框

<p:commandButton id="cancel"  value="Cancel"
                                    icon="ui-icon ui-icon-arrowreturnthick-1-w"
                                    style="float:right;" onclick="PF("dlg").hide()" type="button">
                                </p:commandButton>

另见

Differences between action and actionListener

【讨论】:

【参考方案2】:

onclick 将首先执行。用于调用javascript函数。

actionListener 用于当您希望对 a 进行一些 ajax 调用时 方法。该方法应具有返回类型void,该方法 将ActionEvent 作为参数或不使用参数;它可以 也可用于非 ajax 调用,但随后页面将被刷新。

action 用于导航到不同的页面;该方法应 返回类型为String

【讨论】:

以上是关于JSF action、actionlistener、onClick之间的区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章

JSF:-DataType 和 Action Listener 的问题

JSF,facelets 上的 actionlistener

如果 JSF 不支持,为啥我可以将 <f:actionListener> 绑定到任意方法?

life cycle与四个事件

何时使用 `actionListener` 和 `action`?哪个会先被执行? [复制]

MVC 设计模式的 Action 或 ActionListener