struts-config.xml
Struts 1でForm Bean、Action、入力画面、遷移先の対応を定義する設定ファイル。
概要
struts-config.xmlは、Struts 1の主要な設定ファイルです。既存画面を調査するときは、URL、Action、ActionForm、遷移先JSPを結ぶ地図として使います。
form-beans
<form-beans>
<form-bean name="userSearchForm" type="example.web.UserSearchForm"/>
</form-beans>
<action name="userSearchForm">のnameは、この論理名を参照します。
action-mappings
<action
path="/userSearch"
type="example.web.UserSearchAction"
name="userSearchForm"
scope="request"
validate="true"
input="/WEB-INF/jsp/user/search.jsp">
<forward name="success" path="/WEB-INF/jsp/user/result.jsp"/>
</action>
| 属性 | 確認する内容 |
|---|---|
path | 対応するリクエストパス |
type | 実行されるActionクラス |
name | 使用するForm Bean |
scope | requestとsessionのどちらに置くか |
validate | Action実行前に入力検証するか |
input | 入力検証に失敗した場合の戻り先 |
parameter | DispatchActionなどで呼び分けに使う値 |
forward
<forward name="success" path="/WEB-INF/jsp/user/result.jsp"/>
<forward name="complete" path="/userComplete.do" redirect="true"/>
redirect="true"では新しいリクエストが発生します。指定がなければ通常はサーバー内部でforwardします。
global-forwards
複数のActionで共通利用する遷移先は<global-forwards>に定義できます。
<global-forwards>
<forward name="login" path="/login.do"/>
<forward name="systemError" path="/WEB-INF/jsp/error/system.jsp"/>
</global-forwards>
複数設定ファイル
大きなシステムでは、設定が機能やモジュール単位に分割されていることがあります。ファイル名だけでなくActionクラス名、Form Bean名、pathでもリポジトリ全体を検索します。
調査するときの読み方
- JSPのform actionまたはURLから
pathを探す typeからActionクラスを開くnameをform-beansから引くvalidateとinputから入力エラー時の動きを確認する- Actionが返す論理名と
forwardを対応させる redirectの有無と、遷移先がJSPか別Actionかを確認する
よくある見落とし
- Actionの
pathとJSPファイル名が一致するとは限らない - 遷移先がJSPではなく別Actionの場合がある
- sessionスコープのFormが再利用される場合がある
DispatchActionではparameterにより実行メソッドが変わる- 独自の
ActionMappingやRequestProcessorで挙動が拡張される場合がある
参考文献
更新履歴
- 初版作成