4日目


Hello, Struts2!再び

悩むことが増えそうなのでConventionプラグインは使わないことにする。
はじめのうちはstruts.xml編集しまくって遷移がわかるように書いておきたい。
地道にStruts2付属のチュートリアルで勉強するわ。


ディレクトリ構成

/tutorial
 + /hello
    - hello.jsp
    - hello.vm
 + /WEB-INF
    - web.xml
    + /classes
  + /lib
       - commons-digester-1.8.jar
       - commons-fileupload-1.2.1.jar
       - commons-logging-1.0.4.jar
       - freemarker-2.3.13.jar
       - ognl-2.6.11.jar
       - struts2-core-2.1.6.jar
       - velocity-1.6.2-dep.jar
       - velocity-tools-view-1.4.jar 
       - xwork-2.1.2.jar 
  + /src
       - hello.xml
       - struts.xml
     + /hello
          - HelloWorld.java

機能ごとに分けて、混ざらないようにしたり、他のアプリに機能を持っていきやすいようにしたい。
直下の/helloと/WEB-INF/src/helloと/WEB-INF/src/hello.xmlを持って行ってstruts.xmlでhello.xmlをインクルードすれば良い、はずだ。


web.xml

今回はウェルカムページをHTMLファイルにしてみる。

/WEB-INF/web.xml

struts.xml

struts.xmlではincludeを追加していくだけにする。

/WEB-INF/src/struts.xml

hello.xml

機能のまとまり毎に定義を分けることにする。
result-typesはJSPでもVelocityでも使い分けできるようにするもの。
actionはどういうアクションが来たら、どのクラスを使ってどこに遷移するか。

/WEB-INF/src/hello.xml

index.html

ウェルカムページ。
リンクの書き方はこれでいいのかしら。

/index.xml

View

これまでJavaコード書いてないから、必要無いけれどJavaクラスからメッセージ出すようにしてみる。

/hello/hello.jsp


/hello/hello.vm

Actionクラス

ここに載せているファイルは小文字に統一してるけど、.jspとかのファイルの大文字小文字の違いになかなか気づけなくて時間が過ぎることがある。

/WEB-INF/hello/HelloWorld.java

ActionSupportを継承してgetter、setter作っておけばなんとでもなるようだ。すばらしい。
@SuppressWarnings("serial")はEclipseで警告出るので抑制のため。めんどくさい。


lib

/WEB-INF/libに必要そうなjarをコピーする。


printlnデバッグ

良い子は使わないと思うが、Javaコードで
System.out.println("hoge");
とか書いておくとコンソールに出力される。




値検証

フォームに入力した値をチェックするのは、XMLに定義すればだいたいのことはやってくれるようだ。すばらしい。

貼り付けるのがめんどうになってきた。
【特集】実践サンプルで学ぶStruts 2 - 生まれ変わった定番フレームワークを徹底解説 (12) 入力フォームの値を検証する方法 | エンタープライズ | マイコミジャーナルあたりを見よう。
アクションクラスにvalidateメソッドを実装するか、アクションクラス名-validation.xmlに検証方法を定義するか。アクションクラス名-アクション名-validation.xmlならアクション毎にも設定できる。


戻る