如何全局收听动作事件

时间:2013-05-28 07:24:43

标签: java jsf-2

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

1 个答案:

答案 0 :(得分: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);
}