JSF 2 actionListenerの例
JSFでは、「Action Events」は、ボタンまたはリンクコンポーネント(h:commandButtonやh:commandLinkなど)をクリックすることで起動されます。
actions vs action listeners
これらの2つのタグを混同しないでください。actionsはビジネスロジックとナビゲーションタスクを実行するために使用されます。 action listenersは、UIインターフェイスロジックまたはアクション呼び出し監視を実行するために使用されます。
このアクションリスナーの一般的な使用例は、コンポーネントにアタッチされている属性値を取得するために使用されます。このJSF 2 f:attribute exampleを参照してください。
以下に2つの実装方法を示します。
1. メソッドバインディング
ボタンまたはリンクコンポーネントでは、「actionListener」属性でBeanのメソッドを直接指定できます。
JSFページ…
JSF 2 actionListener example
Managed Bean…
アクションイベントを相互作用するメソッドは、ActionEventパラメータを受け入れる必要があります。
package com.example;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
@ManagedBean(name="normal")
@SessionScoped
public class NormalBean{
public String buttonId;
public void printIt(ActionEvent event){
//Get submit button id
buttonId = event.getComponent().getClientId();
}
public String outcome(){
return "result";
}
}
2. ActionListener
ボタンまたはリンクコンポーネントで、内部に「f:actionListener」タグを追加し、ActionListenerインターフェイスの実装クラスを指定して、そのprocessAction()をオーバーライドします。
JSFページ…
JSF 2 actionListener example
ActionListenerインターフェースの実装
package com.example;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
public class NormalActionListener implements ActionListener{
@Override
public void processAction(ActionEvent event)
throws AbortProcessingException {
System.out.println("Any use case here?");
}
}
ソースコードをダウンロード
ダウンロード–JSF-2-ActionListener-Example.zip(10KB)