Strutsのアクション(Action)
開発メモ.COM
Java
Eclipse Eclipse
Eclipseプラグイン Eclipseプラグイン(Plugin)
Struts Struts
 
Strutsのインストール  インストール
Strutsのアクションフォーム  アクションフォーム
Strutsのアクション  アクション
StrutsのTiles  Tiles
JUnit関連 テスト関連

データベース
MYSQL MYSQL
PostgreSQL PostgreSQL

サーバ環境関連
レンタルサーバ レンタルサーバ
Apache、PHP Apache
Tomcat Tomcat
JBOSS JBOSS
CVS CVS

その他
開発メモの利用において 本サイトご利用において
開発メモのサイトマップ サイトマップ
開発メモの問合せ 問い合わせ

TOP > Struts > Action(アクション)

Strutsのアクション(Action)

コントローラから実行されるStrutsのAction(アクション)についてstruts-config.xmlの設定、
Action(アクション)クラスをサンプルソースなどで説明していきます。
StrutsのAction(アクション)はC(コントローラ)から呼ばれ、役割的にはM(モデル)クラスの
実行や遷移先の決定などを行います。
※StrutsのAction(アクション)自体にM(モデル)を記述することはJatartaでは
推奨されていません。モデルクラスを作成し、Action(アクション)からそのモデルクラスを
呼び出すことがStrutsとして推奨されています。


struts-config.xmlの設定

まずは入力検証のチェックを行なわないStrutsのAction(アクション)を設定します。
これ以降に説明するstruts-config.xmlはAction(アクション)の設定を抜粋した内容です。

<action-mappings>
    <action name="formName" path="/MyAction" type="pkg.MyAction" validate="false" scope="request">
        <forward name="success" path="page.jsp"/>
        <forward name="error" path="error.jsp"/>
    </action>
</action-mappings>

上記の設定ではvalidate="false"を設定することにより入力検証を行なわなくなります。
MyActionの返した値が"success"の場合はpage.jsp、"error"の場合はerror.jspに遷移します。
その他の設定に関しては下記の項目一覧を参照してください。

Acrionタグ
name アクションフォームを定義した時のフォーム名を指定します。
詳細はアクションフォームの設定を参照してください。
path html、jspで指定するサーバへのパスを指定します。
type 使用するアクションクラス(パッケージ名も)指定します。
上記ではpkg.MyActionを指定しています。
input 入力検証時のエラー時に遷移するjsp等を指定します。
こちらを指定する場合はvalidate属性はtrueの時だけです。
validate 入力検証するかどうかを設定します。
trueの場合はチェックをし、falseの場合はチェックしません。
scope アクションフォームを保持するスコープを指定します。
指定できるスコープはrequest、sessionがあり、何も指定しないとsessionとなります。
parameter アクションで取得できるパラメータです。

入力検証のチェックを行なうStrutsのAction(アクション)を設定します。
チェックを行なわない場合との違いはvalidate属性をtrueにしたことと
検証エラー時の遷移先の設定としてinput属性を設定したことが違います。

<action-mappings>
    <action name="formName" input="/error.jsp" path="/MyAction"
            type="pakage.MyAction" validate="true" scope="request">
        <forward name="success" path="page.jsp"/>
        <forward name="error" path="error.jsp"/>
    </action>
</action-mappings>

Actionクラス

struts-config.xmlで設定したStrutsのアクション(Action)クラスを作成します。
アクション(Action)クラスを作成するにはorg.apache.struts.action.Actionを継承します。
下記の例ではimport文は省略しています。

package pkg
public class MyAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response) throws Exception {

        if (処理) { //エラーの場合
            return mapping.findForward("error");
        }
        return mapping.findForward("success");
    }
}

上記のサンプルのようにmapping.findForwardメソッドにstruts-config.xmlで設定した
forwardタグのname属性の値を引数にセットすれば設定したjsp等に遷移します。
これでStrutsのAction(アクション)クラスの設定、ソース作成が完了です。

関連書籍

Strutsに関連する書籍をいくつか紹介します。