ひがやすを技術ブログ

電通国際情報サービスのプログラマ

tiles-defs.xmlなしのSuper AgileなTiles

TilesをJSPのみで使おうとすると、tiles:putで個別のレイアウトを指定するJSPとコンテンツ用のJSPを2つ用意しないといけないから、めんどくさいけど、tiles-defs.xmlを使うというのが、これまでのTilesの利用方法だと思う。
でもさぁ、tiles-defs.xmlのエントリを画面ごとに定義するなんて、俺には耐えられない。
そこで、見つけたのが、次の方法。まず、レイアウト用のJSPを用意する。


<%@page pageEncoding="UTF-8"%><%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%>


<tiles:getAsString name="title"/>


<table width="100%">
<tr>
<td colspan="2">
<tiles:insert page="/WEB-INF/layout/header.jsp">
</td>
</tr>
<tr>
<td width="20%">
</td>
<td>
</tr>
<tr>
<td colspan="2">
<tiles:insert page="/WEB-INF/layout/footer.jsp"/>
</td>
</tr>
</table>
</body>
</html>
ここまでは、これまでと同じ方法。で、このレイアウトを利用するページは次のようにする。

<%@page pageEncoding="UTF-8"%/><%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%/>



<b>${name}</b>


ポイントは、tiles:putのtype="string"。これによって、ボディの内容をそのまま出力できる。わざわざ、コンテンツ用のJSPを用意する必要がない。
これは、超楽チンですよ。