是否可以在命令按钮上有多个 actionListener?
如果没有,有没有办法解决这个问题?
谢谢你的帮助!
不可以,只能添加两个服务器端回调方法:
actionListener
和action
.<ice:commandButton action="#{bean.navigateTo}" actionListener="#{bean.doSomething}"/>
actionListener
必须指向一个公共方法,该方法返回void
并将 ActionEvent 作为参数。它通常用于与任何导航逻辑无关的任何任务,并且具有为您提供控件的新旧(=更改)值的优势。这在复选框等输入控件中特别有意义。
action
必须指向一个返回 aString
而不带任何参数的公共方法。该方法将完成导航所需的一切——例如额外的验证(如果它没有被一些基本的 JSF 验证器处理)。结果必须匹配来自的导航规则faces-config.xml
。
这应该为您提供足够的可能性来处理服务器逻辑中的多个任务(我认为这是您拥有多个 actionListener 的原因)。
此外,如果您只需要执行一些客户端任务,您可以利用几个 on* JavaScript 属性。