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);
}
爲什麼不能簡單地用始終不變的'的ActionListener =「# {sameBean.sameListener}「''對於每個組件,您將能夠使用** ActionEvent **獲取發件人。我仍然不明白你爲什麼要這樣做...... –
你能告訴我你到底想要做什麼嗎?只是想知道這個想法... –
@AlexandreLavoie我想保持我的代碼清潔,可能我可能需要一個組件的另一個actionlistener。 –