3

我一直在阅读那些说 ActionListener 方法必须具有以下签名的帖子:

public void calledByActionListener(ActionEvent e) {
}

像这样调用:

<p:commandButton value="Example" id="example" process="@this" ajax="false" 
    actionListener="#{exampleBean.calledByActionListener()}">

但是我有一个像这样的无参数方法:

public void calledByActionListener() {
}

有什么改变吗?

4

1 回答 1

4

是的,这是使用自定义参数调用方法的新EL 2.2功能。基本上,您是在显式调用无参数方法。这个结构是合法的。

请注意,这与 JSF2 无关。EL 2.2 恰好是 Java EE 6 的一部分,就像 JSF2 一样。所以它看起来像是一个新的 JSF2 特性。但实际上并非如此。作为证据,JSF2 与 Java EE 5 向后兼容,这意味着 EL 2.1,但这种构造在那里不起作用。

当没有在方法表达式中明确指定任何自定义参数时,JSF 将按照规范假定ActionEvent实际方法中的默认参数为 。

于 2013-01-17T15:56:02.457 回答