●struts2でxmlにできるだけ頼らずハローワールドするには

struts.xmlに沢山書きたくない!でもよくわからなくてハローできない…人向け

バージョンは2.2.1.1.で試した。 とりあえず参照jarを集めたりするのは面倒くさいので、 maven2で構築できるプロジェクト構成を用意した。 ただし、pom.xmlはそのままでは使えない。 I:\ECLIP\jre1.6\lib\tools.jarを自分の環境のtools.jarのパスに書き換えないとダメです。 maven2が使うコンパイラーを指定しないとダメなのです。

環境構築手順

前提としてm2eclipseがeclipseに導入されていること。(eclipseプラグインです。ぐぐって導入しよう) AllInOneEclipseの3.6使用。(とりあえず同じにしておけば問題ないはず) 0.projectフォルダのpom.xmlのI:\ECLIP\jre1.6\lib\tools.jarを   自分のeclipseのtools.jarに書き換える。 1.パッケージエクスプローラーとかから、右クリックインポート 2.Maven→Existing Maven Projectsを選択。(検索テキストにmavenっていれればいい。) 3.参照→projectフォルダを指定。pom.xmlをチェックして完了。   コンソールにログが出る。Missing artifactとかの表示がなければOK。 4.プロジェクトを右クリック→プロパティ→ビルドパス→ライブラリー→JREを1.6に変更 5.同じくプロパティ→tomcat→Tomcatプロジェクトチェック。   コンテキスト名は/hoge   Webうんたらかんたらサブディレクトリーは/target/hogehoge   maven2ではpackageしたらtargetフォルダに成果ができるのです。 6.プロジェクト右クリック→実行→Maven package   ログがたくさんでてBUILD SUCCESSならOK。warファイルと実行可能なwarファイル構成を作ってくれる。 7.プロジェクト右クリック→Tomcatプロジェクト→コンテキスト定義を更新 8.tomcat起動。 9.ブラウザ起動。ここにアクセス。 10.i am index!ってページが開く。(index.jsp) 11./testリンクをクリックするとTestActionが実行され、test.jspが開く。    test.jspにはTestActionのhelloメソッドの結果がテキストボックスに表示されている。 終わり。

よくわかってない人がする解説。

struts2ではstruts.xmlにできるだけ設定を書かないようコーディングするものらしい? ↑で作った環境はstruts2-convention-pluginを使用した画面遷移制御方法を使っている。 conventionは画面遷移の制御にアノテーションとActionの命名、配置規則を使ったもの。 CodeBehindっていうのがあったが、今は非推奨になっていて、2.2.1.1.ではconventionが上位互換みたい。 これの他にもrestっていうのがあるみたい。restは多分、アノテーションすら使わず配置規則で全て制御する…?のかなぁ。 とりあえずconventionの規則はActionクラスはactionまたはstruts2パッケージの中にないとダメ。action.hoge.HogeActionとかはあり。 そしてActionクラス名は末尾にActionがつかないとダメ。 Actionクラスはその上、@Resultアノテーションを付ける必要がある。↑の環境だと @Result(location="/content/test.jsp")とだけ指定している。 これはsuccessが返ったらそこに返すよ、という意味。name="success"はデフォルト値なのです。 複数の遷移先がある場合は@Resultsを使うみたい。 あとはweb.xmlにフィルタークラスの設定をする必要がある。 FilterDispatcherっていうクラスを指定。非推奨だけどこっち使うみたい。 Filter-mappingとかとりあえず全部OK? ウェルカムファイルはルートURL指定したときに出すファイルのこと。 とりあえずこんだけ設定すればハローワールドできるみたいです。 色々新旧情報がごちゃごちゃあって、こんな簡単なことをするのに恐ろしく時間がかかった… strtus2ではActionFormが消えうせて、かわりにActionにゲッターメソッドを定義して、それをjsp上でプロパティとして呼び出すようです。 終わり。
inserted by FC2 system