我一直在阅读那些说ActionListener方法必须具有以下签名的帖子:
public void calledByActionListener(ActionEvent e) {
}
像这样调用:
<p:commandButton value="Example" id="example" process="@this" ajax="false"
actionListener="#{exampleBean.calledByActionListener()}">
但是我有一个像这样的无法工作的方法:
public void calledByActionListener() {
}
有什么变化吗?
答案 0 :(得分:4)
是的,这是使用自定义参数调用方法的新EL 2.2功能。基本上,您是显式调用无参数方法。这种结构是合法的。
请注意,这与JSF2无关。 EL 2.2恰好是Java EE 6的一部分,就像JSF2一样。所以看起来像一个新的JSF2功能。但实际上并非如此。作为证据,JSF2向后兼容Java EE 5,因此意味着EL 2.1,但这种结构在那里不起作用。
如果未在方法表达式中明确指定任何自定义参数,JSF将根据规范假定实际方法中的默认参数ActionEvent
。