Tilesとは †Tilesとは、JSPでいうInclude機能を強化したフレームワークで、Webサイトの保守性をアップする為のものだそうです。設定ファイルを間にかませることで、ソースコードの修正なしにIncludeするJSPファイルを切り替えたり、設定を継承したり、いろいろなことができそうです。 とりあえず練習っつうことで †ファイル構成 †とりあえずやってみましょう。サンプルのアプリを作ってみます。
それぞれの内容 †struts-config.xmlは以下を追加しました。 <plug-in className="org.apache.struts.tiles.TilesPlugin"> <set-property property="moduleAware" value="false" /> <set-property property="definitions-debug" value="0" /> <set-property property="definitions-parser-details" value="0" /> <set-property property="definitions-parser-validate" value="false" /> <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" /> ↑Tilesの設定ファイルの場所 </plug-in> tiles-defs.xmlは以下のようになりました。 <tiles-definitions> <definition name="layoutBase" path="/layoutBase.jsp"> ↑pathで指定したJSPファイルを、nameで指定した名称でincludeする <put name="menubar" value="/menubar.jsp" /> ↑上のJSP(layoutBase.jsp) 内で、呼び出すJSPの指定。 <put name="body" value="/body.jsp" /> ↑上のJSP(layoutBase.jsp) 内で、呼び出すJSPの指定。 </definition> </tiles-definitions> layoutBase.jsp は以下の記述をしました。 <table border="0" style="width: 100%"> <tr> <%-- メニューの記述 --%> <td id="menubar"><tiles:insert attribute="menubar" /></td> ↑putタグはattribute属性で呼び出す <%-- ボディの記述 --%> <td id="body"><tiles:insert attribute="body" /></td> ↑putタグはattribute属性で呼び出す </tr> </table> index.jsp は以下の記述をしました。*1 <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> <tiles:insert definition="layoutBase" flush="true"/> ↑definitionタグはdefinition属性で呼び出す 追加作業 †今回はindex.jspで <tiles:insert definition="layoutBase" flush="true"/> として、struts-config.xmlでindex.jspに遷移させるというやり方をしましたが、もっとよりよい方法がありました。直接struts-config.xmlで、layoutBaseというtiles-defs.xmlで定義した名称が記述できます。ようするに、 <action name="hoge" path="/foo" scope="request" type="kino.actions.FooAction"> <!-- <forward name="success" path="/index.jsp"></forward> --> <-始めこう書いてたけど <forward name="success" path="layoutBase"></forward> <-こういう書き方 </action> って書くことができます。こうすることによって、確かに保守性はあがるかも。 感想 †とりあえずいろいろ試行錯誤しましたが、上の内容で稼動しました。今んところまだ、設定ファイルでエイリアスできる以外はJSPのインクルード機能と一緒じゃん、くらいしか感じませんが、継承とかもっと色々出来そうですね。引き続き勉強します。*2 引き続きStruts/TilesのTIPS集へ この記事は 現在のアクセス:80627 |