0

是否可以注册一个全局动作监听器,它将监听页面上触发的所有动作事件?
如果是这样,那就意味着我不需要在每个操作组件上注册相同的(默认)actionlister。

4

1 回答 1

0

有两种方法可以做到:

使用actionListener参数:

<h:commandButton id="test1" value="Test 1" actionListener="#{bean.action}" />
<h:commandButton id="test2" value="Test 2" actionListener="#{bean.action}" />


public void action(ActionEvent event)
{
    System.out.println(event.getComponent().getClientId());
}

使用普通参数:

<h:commandButton id="test1" value="Test 1" actionListener="#{bean.action('test1')}" />
<h:commandButton id="test2" value="Test 2" actionListener="#{bean.action('test1')}" />

public void action(String sender)
{
    System.out.println(sender);
}
于 2013-05-28T08:18:42.910 回答