URL中の"view"の排除
Teedaで使用するHTMLテンプレートは、src/main/webapp/view フォルダの中に作成するという規約になっている。
プロジェクト名を foo、サブアプリケーション名を bar にした場合、src/main/webapp/view/bar/index.html を作成すると、そのページにアクセスする為のURLは、http://localhost:8080/foo/view/bar/index.html となる訳だが…、viewって当たり前ですよね。
と思っていたら、解決法が紹介されておりました。
viewが不要ならNamingConventionImplのviewRootPathを/にすればOKです。
http://d.hatena.ne.jp/itoasuka/20070129/1170056169
HTMLファイルもsrc/main/webapp直下におけばURLから/view/は無くせました(略)
http://d.hatena.ne.jp/maxroze/20070130/1170134659
というわけで、src/main/resources/convention.dicon の NamingConventionImpl に下記を追加。
<property name="viewRootPath">"/"</property>
こうすれば、src/main/webapp/ 直下にテンプレート(例えば src/main/webapp/bar/index.html)を作成すればURLからviewを排除できます。
ついでにプロジェクトのテンプレート用ソースフォルダ(デフォルトでsrc/main/webapp/view)を src/main/webapp に変更したくなりますね。というわけで、プロジェクトのプロパティ → Javaのビルドパス → ソース(S) タブから foo/src/main/webapp/view を削除し、新規で foo/src/main/webapp を追加すると…
'foo/src/main/webapp' 内で出力フォルダー 'foo/src/main/webapp/WEB-INF/classes' をネストできません。
うは。確かに。どうしよう。
追記
ソースフォルダ foo/src/main/webapp の除外パターンに WEB-INF/classes/ を追加することにより、設定可能になりました!
デフォルトで含まれる /view/error/error.html も移動した場合は、teedaErrorPage.dicon の設定も変更するのをお忘れ無く。
<component class="org.seasar.teeda.extension.util.TeedaExtensionErrorPageManagerImpl"> <initMethod name="addErrorPage"> <arg>@java.lang.Throwable@class</arg> <arg>"/error/error.html"</arg> </initMethod> </component>