0

是否可以在命令按钮上有多个 actionListener?

如果没有,有没有办法解决这个问题?

谢谢你的帮助!

4

1 回答 1

1

不可以,只能添加两个服务器端回调方法:

  • actionListener
  • action.

<ice:commandButton action="#{bean.navigateTo}" actionListener="#{bean.doSomething}"/>

actionListener必须指向一个公共方法,该方法返回void并将 ActionEvent 作为参数。它通常用于与任何导航逻辑无关的任何任务,并且具有为您提供控件的新旧(=更改)值的优势。这在复选框等输入控件中特别有意义。

action必须指向一个返回 aString而不带任何参数的公共方法。该方法将完成导航所需的一切——例如额外的验证(如果它没有被一些基本的 JSF 验证器处理)。结果必须匹配来自的导航规则faces-config.xml

这应该为您提供足够的可能性来处理服务器逻辑中的多个任务(我认为这是您拥有多个 actionListener 的原因)。

此外,如果您只需要执行一些客户端任务,您可以利用几个 on* JavaScript 属性。

参考:ICEfaces 自定义组件标签库

于 2009-08-27T05:54:27.880 回答