#topicpath ---- #contents ***Actionクラス一覧 [#r94614f3] 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を使用する。 [#q960fc72] 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 [#kc9a2e4b] リクエストパラメタの内容で起動するメソッドを切り替えることが出来るアクションクラスです。たとえば /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 が呼ばれる、てな具合です。ほとんど処理が同じで、一部だけ処理が違うようなビジネスロジックがあるときに、テンプレートパタンとこのアクションを用いると便利かもしれませんね。 ---- この記事は #vote(おもしろかった[7],そうでもない[2]) #comment #topicpath SIZE(10){現在のアクセス:&counter;}