ComposableRequestProcessor
今度リリースするS2Struts1.3.0-beta3からStruts1.3対応となります。
そしてStruts1.3が提供するComposableRequestProcessorを利用してS2と連携できるようになります。
(S2RequestProcessorを利用したS2との連携も従来どおりできます)
ComposableRequestProcessorでS2と連携をするためには、、、やっぱり設定が必要になります。
まずは、web.xmlでActionServletを定義するときにS2Struts用のchain-config(s2struts-chain-config.xml)とStrutsが提供するchain-config.xmlを指定します。
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> ... <init-param> <param-name>chainConfig</param-name> <param-value>s2struts-chain-config.xml, org/apache/struts/chain/chain-config.xml</param-value> </init-param> ... </servlet>
次にstruts-config.xmlの設定です。
デフォルトでComposableRequestProcessorを利用することになっているのでprocessorClassの指定は不要ですが、処理の流れを定義しているcatalogの名前はs2strutsと変えているので、以下のようにcatalogを指定します。
<struts-config> ... <controller catalog="s2struts"/> ... </struts-config>
ちなみに、、、従来の下のようなS2RequestProcessorを利用する指定は不要になります。
<struts-config> ... <controller processorClass="org.seasar.struts.processor.S2RequestProcessor"/> ... </struts-config>
これでComposableRequestProcessorを利用してS2と連携することができるようになります。
あと、Tilesを利用する場合はweb.xmlでTilesのchain-config.xmlを利用するように変更すればOKです。
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> ... <init-param> <param-name>chainConfig</param-name> <param-value>s2struts-chain-config.xml, org/apache/struts/tiles/chain-config.xml</param-value> </init-param> ... </servlet>
[追記]2007/02/14
HOT deployの環境でComposableRequestProcessorを利用する場合は、web.xmlのHotdeployFilterの後にS2StrutsHotdeployFilterを追加する必要があります。
<filter> <filter-name>hotdeployfilter</filter-name> <filter-class>org.seasar.framework.container.hotdeploy.HotdeployFilter</filter-class> </filter> <filter> <filter-name>s2strutshotdeployfilter</filter-name> <filter-class>org.seasar.struts.hotdeploy.filter.S2StrutsHotdeployFilter</filter-class> </filter> : : <filter-mapping> <filter-name>hotdeployfilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> <filter-mapping> <filter-name>s2strutshotdeployfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>