2011/04/19

Struts2 ConventionとTilesのJSP検索パス

環境: Struts 2.2.1.1, Tiles 2.2.2

Struts2 ConventionとTilesを一緒に使うときの話。

Conventionが.jsp を検索するパスはデフォルトで /WEB-INF/content (constant: struts.convention.result.path) だが、Tilesは Context Root から検索する。Tilesの方はソースを追ってみた限りでは、templateに共通のプリフィックスを付加するような処理はなく、templateの値がそのままdispatchされるようだ。

できる限り設定の追加は避けたいので、Tiles のパスを長々と書くことにした。

tiles.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

<tiles-definitions>

<definition name="/main.tiles" template="/WEB-INF/content/main.jsp">
<put-attribute name="body" value="/WEB-INF/content/body.jsp" />
<put-attribute name="footer" value="/WEB-INF/content/footer.jsp" />
</definition>

</tiles-definitions>



template attribute の /WEB-INF/conent を書かずに済む方法があれば、すっきりするのだが。

0 件のコメント:

コメントを投稿