Apache Strutsの設定ファイル struts-config.xml

Strutsコンフィグレーションファイル(struts-config.xml)とは、Java用WebアプリケーションフレームワークApache Strutsの動作を定義するXMLファイルである。

DOCTYPE

struts-config.xmlのDOCTYPEにはStrutsのバージョンを指定する。Strutsのバージョンにより、struts-config.xmlの構造が異なる。

Struts 1.0

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">

Struts 1.1

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

Struts 1.2

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_2.dtd">

Struts 1.3

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">

要素

要素 説明
struts-config struts-config.xmlのルート要素
form-beans ActionFormBeanの定義群
form-bean ActionFormBeanの定義
global-forwards Forwardの定義群
forward Forwardの定義
action-mappings Actionへのマッピング群
action Actionへのマッピング

form-bean

form-beanはActionFormBeanを定義する要素であり、form-beansの子要素である。

属性 説明
id 要素の識別子
classname ActionFromBeanクラスの完全修飾名
name ActionFormBeanの論理名
type ActionFormBeanクラスの完全修飾名

forward

forwardはフォワードを定義する要素であり、global-forwardsまたはactionの子要素である。

属性 説明
id 要素の識別子
className ActionForwardクラスの完全修飾名
name forwardの論理名を指定する。(必須)
この名前はActionクラスにおいてforwardを指定するときに参照される。
path forwardするURI。(必須)
redirect trueならsendRedirect()でフォワードできる。falseならRequestDispathcer.forward()でフォワードできる。

action

リクエストされたURIからActionへのマッピングを記述する要素であり、action-mappingsの子要素である。

属性 説明
attribute このActionで使用するActionForm Beanの属性
className ActionMappingクラスの完全修飾名
forward このActionへのリクエストを実行するServletかJSPへのContextにおける相対パス
id 要素の識別子
include typeで指定されるActionをインスタンス化して呼ぶかわりに実行するSevletやJSPへのContextにおける相対パスを書く。
input 認証エラーが発生したときの入力フォーム画面
name このActionに関連づけられるActionFormBeanの名前
path /で始まるContext内でのこのActionの相対パス
parameter 汎用目的で使用されるActionのパラメータ
prefix ActionFormBeanのパラメータ名の接頭辞
scope

ActionForm Beanのスコープを"session"(初期値)か"request"で指定する。

scope="session"の場合、HttpSession#setAttribute()でアクションフォームのインスタンスがセッションに保持される。

scope="request"の場合、HttpServletRequest#setAttribute()でアクションフォームのインスタンスがリクエストに保持される。つまり、HTTPリクエストを受けてからHTTPレスポンスを返すまでアクションフォームが保持される。

suffix ActionFormBeanのパラメータ名の接尾辞
type このActionを処理するActionクラスの完全修飾名
unknown このWebアプリケーションのデフォルトのActionにしたいときにtrueにする。要素Actionの中で一つだけtrueにすることができる。
validate このActionを実行すう前にActionFormBeanのvalidate()を呼び出したいならtrueにする。

struts-config.xmlで<action>タグを記述する例を示す。

<action-mappings>
  <action path="exapmle/exampleInit"
          type="com.fc2web.itref.example.ExampleInitAction"
          name="exampleForm"
          scope="request"
          validate="false">
      <forward name="success" path="/example/example.jsp" />
  </action>
</action-mappings>