S2Strutsでのtilesの利用
S2StrutsExample-V1.3.0-RC6では、view側(プレゼンテーション層?)がmayaaからjspに変わってます。
そこで、tilesを使ってレイアウトを作成されているのだけれど、tiles-defs.xmlなどが存在しない。
と思ったら、web.xmlで下記の通り、書いてあった。
こうゆうやり方もあるんだね。
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>false</el-ignored> <page-encoding>UTF-8</page-encoding> <scripting-invalid>false</scripting-invalid> <include-prelude>/WEB-INF/view/common/taglib-defs.jsp</include-prelude> <include-prelude>/WEB-INF/view/common/var-defs.jsp</include-prelude> <include-prelude>/WEB-INF/view/common/tails-defs.jsp</include-prelude> </jsp-property-group> </jsp-config>
それは、さておき、S2Struts1.2でtilesを使おうと思い、
Struts-TECHSCORE-の実習課題1をやってみることにした。
なんか、エラーとか出てうまくいかんな〜と googleくんで検索してみたら
[Seasar-user:5878] Re: [S2Struts] s2-struts-1.3.0-beta-2でのTilesの利用について
というタイトルでTilesを利用する場合の変更点があった。
メールのアーカイブのURLはhttp://ml.seasar.org/archives/seasar-user/2007-January/005878.html
そこを見ると、s2struts1.3のことみたいだけど、
とあったので、s2struts.diconをS2TilesRequestProcessorを使うように変更してみた。
こんな感じ↓
- s2truts.diconの変更
<!-- 変更前 <component name="requestProcessor" class="org.seasar.struts.processor.S2RequestProcessor" instance="prototype"> <aspect pointcut="processActionForm"> <component class="org.seasar.struts.interceptors.ProcessPojoFormInterceptor"/> </aspect> </component> --> <!-- 変更後 S2RequestProcessorの方を使い、nameを"tilesRequestProcessor"→"requestProcessor" --> <component name="requestProcessor" class="org.seasar.struts.processor.S2TilesRequestProcessor" instance="prototype"> <aspect pointcut="processActionForm"> <component class="org.seasar.struts.interceptors.ProcessPojoFormInterceptor"/> </aspect> </component>
S2RequestProcessor→S2TilesRequestProcessorへ
<controller processorClass="org.seasar.struts.processor.S2TilesRequestProcessor"/>
でも、よく見たら、S2Strutsリファレンス 基本的な使い方に、
S2とStrutsを連動させるためにS2用のRequestProcessorをstruts-config.xmlに登録する必要があります。 S2RequestProcessorとS2TilesRequestProcessorを用意しています。これらはそれぞれStrutsのRequestProcessorとTilesRequestProcessorに相当します。
書いてあったよ。
Tiles 設定ファイルを使用しない方法
http://www.techscore.com/tech/ApacheJakarta/Struts/answer/23-1.htmlここ見たら
Tiles 設定ファイルを使用しないで作成する方法があった。
普通に、デファクトスタンダードなんだろうか・・・。tiles-defs.xmlを用意せずにできるってことは、サーバーの再起動が不要なので、jspを変更したら即変更内容が認識してくれるから、xmlを使わない方が若干楽なのかな。