Struts2 ベストプラクティス
提供: tknotebook
メインページ>コンピュータの部屋#Java>Struts2 Tips
私なりにまとめたベストプラクティスです。
- Conventionプラグインを入れてアノテーションを使う。
- struts.xml で設定を行うより、Conventionプラグインを入れてアノテーションで設定を書く方が楽です。
- Conventionプラグインを入れて既定の jspファイル名を使う
- Conventionプラグインを入れると、アクション処理後の ビューのファイル名は jsp の場合 /WEB-INF/content/<ネームスペース>/<アクション名>-<戻り値>.jsp になります。JSPを呼び出すだけの場合は Resultアノテーションを使わず、このConventionを利用することをお勧めします。
- 1アクションクラス=1画面=1個以上のアクション
- struts2は1アクションクラス=1アクションが基本ですがクラスが増えすぎます。アノテーションを使って1アクションクラス=1画面=1個以上のアクション という対応にすることをお勧めします。
- 画面毎にネームスペースを分ける
- 画面=アクションクラス毎にネームスペースを別にすると、各画面で同じアクション名が使えて便利です。
- 画面の種類毎に java のパッケージを分ける
- struts2 では package-info.java に Parentpackage アノテーションで付けることで、Javaのあるパッケージ、およびそのサブパッケージ全体に struts.xml 内で定義した package を継承することができます。画面の種類ごとに画面がstruts.xml 内で定義した 異なるpackage を継承する場合、アクションクラスの所属する java package を分けると便利です。
- バリデーションなしのメソッドはアノテーションで
- バリデーションの設定のある画面でバリデーションを行わずに画面を表示する場合、アクションは input や browse 等を使うことになっていますが、私は初期表示は showアクションに決めています。バリデーションの抑止は @SkipValidation アノテーションを使います。
- 同じ内容で複数のJSPは s
- includeタグを使う
- 結果を表示する JSP は、表示する内容は全く同じでも、Conventionプラグインによる命名では異なるファイル名になってしまうことがあります。この時は s:includeタグ で中身を同じにしてしまうことを推奨します。