ThymeleafとJSP
ブログを作るにあたって,JSPとThymeleafのどっちにすればいいか悩んだので,JSPとThymeleafを共存させる方法を紹介します.
なお,環境はMavenプロジェクトにおけるSpringMVCフレームワークを採用します.
また,web.xmlやapplication-context.xml,spring-mvc.xml,pom.xmlの設定は済んでいるものとします.
今回,変更を加えるのはディレクトリの階層とspring-mvc.xmlの中身です.
まず,次のようにwebapp下にディレクトリを配置します.
これでディレクトリの設定は完了です.
次にspring-mvc.xmlの設定をします.spring-mvc.xmlとはweb.xmlにおいて,dispatcherサーブレットを定義した時の,contextConfigです.
spring-mvc.xmlはwebapp配下ならどこにおいてもいいですが,web.xmlのdispatcherサーブレット定義においてちゃんとcontextConfigLocationで指定してください.
話を戻して,spring-mvc.xmlに記述していきます.まずはThymeleafの設定です.
重要なのは
<property name="viewNames" value="thymeleaf/* />
<property name="order" vavlue="1" />
です.
ここが,普通にThymeleafを設定する際に違う点です.viewNamesでThymeleafを表示する際の名前パターンを指定しています.
orderというのはViewResolverを使用する優先度ですね.
同様にJSPです.
JSPではInternalResourceViewResolverを使います.
先ほどとほな滋養にviewNamesで名前パターン,orderでViewResolverの優先順位を指定しています.この場合は優先順位はJSP < Thymeleafですね.
prefixやsuffixって何?っていう方は,参考書か何かを読んでみたり,Qittaなどにも載ってるのでそれを見てください.英語が読める人はReferenceを読むのが手っ取り早いと思います.
あとは,sample.htmlとsample.jspを記述して,コントローラを作成するだけですね.コントローラの戻り値はそれぞれ
return "thymeleaf/sample";
return "jsp/sample";
とすれば問題ないです.他は普通通りです.
ここまで書いてきたわけですが,ブログ制作にあたってはThymeleafを使うことにしました.
最初はJSPとThymeleafを共存するつもりでしたが,なんかめんどくさそうになりそうだったので,あまり触ったことのないThymeleafに統一することに決めました.
でも,
せっかく共存できたからもったいないなー...
とか思っちゃったので,ここに残します笑
参考文献:https://uchi-fashion.hatenablog.com/entry/2017/07/01/164346