1. はじめに
Spring MVCのアプリケーションを作成する場合、TERASOLUNA Server Framework for Java (5.x) を利用することがあります。
しかし、デフォルトではテンプレートエンジンのTiles が有効になっています。Tilesを使うことがほとんどないため、毎回Tilesに関する設定、ファイルを削除していました。
今回はTERASOLUNA5.xのブランクプロジェクトからTilesを削除する方法について、個人的な備忘録として残したいと思います。
2. 修正内容
2.1 Webプロジェクトのpom.xmlからTilesの依存関係を削除
terasoluna-gfw-recommended-web-dependencies
を依存関係から削除(コメントアウト)します。
<!--
<dependency>
<groupId>org.terasoluna.gfw</groupId>
<artifactId>terasoluna-gfw-recommended-web-dependencies</artifactId>
<type>pom</type>
</dependency>
-->
以下を見れば分かるかと思いますが、Tiles関連のライブラリしか定義されていません。
https://github.com/terasolunaorg/terasoluna-gfw/blob/master/terasoluna-gfw-dependencies/terasoluna-gfw-recommended-web-dependencies/pom.xml
2.2 Tilesのテンプレートファイル削除
/webプロジェクト/src/main/webapp/WEB-INF/views/layout
に格納されているファイルがTiles関連のファイルです。
Tilesを利用しない場合は不要となるので、layoutディレクトリ自体削除してしまいます。
2.3 不要となるViewResolverの削除
/webプロジェクト/src/main/resources/META-INF/spring/spring-mvc.xml
にViewResolverの定義があります。
ここからTilesのView関連を削除します。
不要となるのは<mvc:tiles />
と <mvc:tiles-configurer>
の定義です。
<!-- Settings View Resolver. -->
<mvc:view-resolvers>
<mvc:bean-name />
<!--
<mvc:tiles />
-->
<mvc:jsp prefix="/WEB-INF/views/" />
</mvc:view-resolvers>
<!--
<mvc:tiles-configurer>
<mvc:definitions location="/WEB-INF/tiles/tiles-definitions.xml" />
</mvc:tiles-configurer>
-->
これで/WEB-INF/tiles/tiles-definitions.xml
も不要になるので、Tilesディレクトリ自体も削除してしまいましょう。
2.4 (おまけ)web.xmlの機能でヘッダ、フッターを自動で付与
/webプロジェクト/src/main/webapp/WEB-INF/web.xml
の修正することでヘッダ、フッターを自動で追加することが可能です。
<include-prelude>
と <include-coda>
でJSPの開始と終了に別のJSPをインクルードさせます。
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored>
<page-encoding>UTF-8</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude>/WEB-INF/views/common/include.jsp</include-prelude>
<include-prelude>/WEB-INF/views/common/header.jsp</include-prelude>
<include-coda>/WEB-INF/views/common/footer.jsp</include-coda>
</jsp-property-group>
</jsp-config>
<jsp-property-group>
自体を複数定義することができます。
ですので、特定の画面グループにはヘッダ、フッター、メニューを表示するが、特定の画面グループにはこれらを表示しない、といった設定も可能です。
これらの内容はJSP単体でもTilesでもできますので、重要なのは設計方針だといえるでしょう。
3. さいごに
今回はTERASOLUNA5.xのブランクプロジェクトからTilesを削除する方法について説明しました。
MVCアプリケーションにとってViewの実装技術は重要かと思います。
さまざまな技術(ライブラリ)がたくさん出てきているので、Viewを手軽に実装できるものをプロジェクト特性に応じて、適切に選択できるようにしていきたいなと思いました。