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