JSF 2のactionListenerの例

JSF 2 actionListenerの例

JSFでは、「Action Events」は、ボタンまたはリンクコンポーネント(h:commandButtonh: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)