ページの先頭行へ戻る
Interstage Business Application Server 12.0.0 オープンJavaフレームワークユーザーズガイド Java EE 7編
FUJITSU Software

6.3.2 Modelの作成

Modelは、ユーザープリケーションのビジネスロジックを実装します。

Strutsの作法では、ビジネスロジックを実装するActionクラス、リクエストデータを格納するActionFormクラスの2つから構成されます。

なお、各APIの詳細については、StrutsのJavadocを参照してください。

ActionFormクラスの作成

JSPの入力フォームに入力された情報を格納するクラスです。

org.apache.struts.action.ActionFormクラスを継承する以外は、JavaBeansと同様に開発します。

(ExtActionForm.java)

package sample;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import javax.servlet.http.HttpServletRequest;
public class ExtActionForm extends ActionForm {
    // プロパティ
    private String name = null;
    // アクセッサ
    public void setName( String prm ) {
        name = prm;
    }
    public String getName( ) {
        return name;
    }
    // (1)
    public ActionErrors validate( ActionMapping mapping,
                                  HttpServletRequest request ) {
        ActionErrors ret = new ActionErrors();
        if( (null == name) || (name.equals("")) ) {
            ret.add( "name", new ActionMessage("err.input", false) );
        }
        return ret;
    }
}

(1) 検証機能

このメソッドは、Actionクラスが実行される前にStrutsランタイムから呼び出されます。

Actionクラスの作成

ユーザーのビジネスロジックを実装するクラスです。

org.apache.struts.action.Actionクラスを継承させる必要があります。

(ExtAction.java)

package sample;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ExtAction extends Action {
    // (1)
    public ActionForward execute( ActionMapping mapping, 
                                  ActionForm    form,
                                  HttpServletRequest  req, 
                                  HttpServletResponse res ) 
            throws java.lang.Exception {
        ExtActionForm eaf = (ExtActionForm)form;
        String name = eaf.getName( );
        eaf.setName( name + ", hello." );
        // (2)
        return (mapping.findForward( "result" )); 
    }
}

(1) 業務ロジックの実装

executeメソッドをオーバライドして、ユーザーの業務ロジックを実装します。

(2) 処理結果の遷移先を返却

処理結果として出力する遷移先(Struts設定ファイルで定義したforwardタグ)を指定します。