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 件のコメント:
コメントを投稿