Top / Struts / ActionのTIPS集2

Actionクラス一覧

Strutsにはいろいろな標準Actionクラスがあります。その使い方をまとめています。 基本的に

Action通常のアクションです。formからhoge.doで呼ばれるAction(ビジネスロジックへのアダプタ)は基本的にはこのクラスを継承して作成します。
ForwardAction?JSPをただ呼びたいときなどに、直接JSPにリンクをはるのではなく、このActionを用います。転送先ごとに(遷移させたいJSPごとに)アクションマッピングを定義しておき、論理パスでJSPを呼ぶようにします。このクラスは継承せずにそのまま使用します。
IncludeAction?勉強中。
DispatchAction?リクエストパラメタによって呼ばれるメソッドを切り替えることが出来るアクションクラスです。一つのフォーム内に複数のSubmitボタンが存在するようなとき、このActionクラスをExtendsして使うことができるかなぁ。勉強中。
LookupDispatchAction?http://ch.kitaguni.tv/u/1677/Struts/0000028675.html 勉強中。
SwitchAction?モジュール型アプリケーションを作成したときに利用します。勉強中。

てのがあるみたいです。

JSPは直接リンクをはらないで、ForwardAction?を使用する。

struts-config.xml:
<action-mappings>
  <action path="/forward" type="org.apache.struts.actions.ForwardAction"
     parameter="/WEB-INF/jsp/index.jsp">
  </action>
</action-mappings>

と定義しておく。んで、JSP側ではforward.doを呼ぶことでindex.jspに転送されます。JSPから直接JSPを呼ぶのではなく、必ずActionを経由することによって、プログラム同志の結合がより疎になります。またStruts1.1からモジュールの概念が導入されましたが、1.1からActionを経由しないで直接JSPを呼ぶのはNGになっているようです。

DispatchAction?

リクエストパラメタの内容で起動するメソッドを切り替えることが出来るアクションクラスです。たとえば

/hoge.do?command=fuga
/hoge.do?command=foo

として、struts-config.xmlを

<action path="/hoge"
  type="actions.MyDispatchAction" <-このクラスは DispatchActionをextends
  name="hogeForm"
  parameter="command"> <-commandというパラメタで、メソッド名が決まります
  <forward name="success" path="index.jsp"/>
</action>

とすると、

/hoge.do?command=fuga ではMyDispatchAction#fuga
/hoge.do?command=foo  ではMyDispatchAction#foo

が呼ばれる、てな具合です。ほとんど処理が同じで、一部だけ処理が違うようなビジネスロジックがあるときに、テンプレートパタンとこのアクションを用いると便利かもしれませんね。


この記事は

選択肢 投票
おもしろかった 31  
そうでもない 22  
Top / Struts / ActionのTIPS集2

現在のアクセス:17610


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-08-20 (木) 11:03:50 (1337d)