2009年4月10日金曜日

Struts応用(三):Struts-config.xmlファイルを複数の設定ファイルに分割する方法

※下記ソースを使う時、()→<>に変更してください。
1.初期化パラメータの設定値をカンマで区切る方法
例:
(servlet)
(servlet-name)action(/servlet-name)
(servlet-class)org.apache.struts.action.ActionServlet(/servlet-class)
(init-param)
(param-name)config(/param-name)
(param-value)/WEB-INF/struts-config.xml,
/WEB-INF/struts-config2.xml
(/param-value)
(/init-param)
(load-on-startup)1(/load-on-startup)
(/servlet)

2.モジュール化によるファイル分割を用いる方法
(servlet)
(servlet-name)action(/servlet-name)
(servlet-class)org.apache.struts.action.ActionServlet(/servlet-class)
(!-- デフォルトモジュール --)
(init-param)
(param-name)config(/param-name)
(param-value)/WEB-INF/struts-config.xml(/param-value)
(/init-param)
(!-- 登録モジュール --)
(init-param)
(param-name)config/reg(/param-name)
(param-value)/WEB-INF/struts-config-reg.xml(/param-value)
(/init-param)
(load-on-startup)1(/load-on-startup)
(/servlet)

モジュール化では、プレフィックスを用いて名前空間を分割します。
デフォルトモジュール:http://ホスト名/コンテキスト名/アクション名.do
登録モジュール:http://ホスト名/コンテキスト名/モジュール名(reg)/アクション名.do
※これは、上記configファイルの(param-name)のURIで決めるもの
要注意のは、上記モジュール化によって、JSPのactionパスは、サブモジュールの
設定ファイル(例:struts-config-reg.xml)に定義されたActionMappingと合えない可能性
があります。原因は、URIにモジュール名があること。これは、Strutsが決めたものだ。
解決の一つ方法は、仲介役の遷移画面が用意し、該当仲介画面を通じて、上記モジュールの
実際の作業JSPが表示される。
例:
(html:link module="/reg" action="/forwardLoginReg")regモジュールへ(/html:link)
「action="/forwardLoginReg"」がstruts-config-reg.xmlに定義される。

(action path="/forwardLoginReg" forward="/loginReg.jsp")
(/action)
これで、loginReg.jspがモジュールregを含んでいるURIに表示されることができる
※struts-config.xmlに定義できる属性:
* (data-sources)要素
* (form-beans)要素
* (global-exceptions)要素
* (global-forwards)要素
* (action-mappings)要素
* (controller)要素
* (message-resources)要素
* (plug-in)要素

0 件のコメント: