SpringのビューをThymeleafでつくるんだびゅー

Spring web appを作るうえで、MVCの各セクションでこだわりたいものですね。

今回はViewです。

Thymeleafというテンプレートエンジンを使います。

使えるファイル形式はhtmlです。

つまりデザイナーさんとの分業がしやすい、ということになります。

デザイナーさんたちとの協業を推し進める Thymeleaf | ヌーラボ

 

ちなみに呼び方はタイムリーフ、らしいです。

これを知ったころ、同期ともめました。

彼女:タイムリーフじゃない?

私:いやいやthだしスィでしょスィ、スィミリーフ

調べた別の同期:(カタカタ、カチッ)タイムリーフだって

私:Σ(°Д°υ)

彼女:(●´ิ∀´ิ●)

私:(*ノ▽ノ)<炎炎炎炎炎炎炎炎炎

 

Thymeleafの使用例が載っているページ、よくありますが、

ただ単にhtml(Tymeleafインポート入り)を作ればいいわけではないです。

html(Thymeleafでなくjspを使うときにはjsp)をマッピングするに必要なことがあるですよ。

 

考えてみれば、最初に作ったControllerメソッドのString戻り値が

そのまんま画面に出されていますね。

この戻り値がhtml属性ではなくhtmlファイル名に紐づくよう設定が必要です。

 

必要なことは3つあります。

①src/main/resources配下にtempletesフォルダ作成、その配下にhtml作成

②src/main/resources配下にapplication.propetiesファイルを配置

③Controllerの設定読み取りアノテーション追加

 

①src/main/resources配下にtempletesフォルダ作成、その配下にhtml作成

→まあ、出したいhtml作成ですね。

 中身はこちらをごらんあれ

 Spring BootでThymeleafを使う | Developers.IO

 

②src/main/resources配下にapplication.propetiesファイルを配置

→肝ですね。spring appのアプリセッティングファイルです。

 ここで、return値とhtmlファイルを結びつける設定をするのです。

 ファイルの中身を

-----↓

spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html

-----↑

 

③Controllerの設定読み取りアノテーション追加

→さっきのファイルを追加しただけでは、javaは読んでくれぬものです。

 で、アノテーション"@EnableAutoConfiguration"を追加します。

 追加先は、Controllerクラスのクラス前に。

 一応、App起動クラスにも同様につけときましょうか。

 

起動、動作チェックして、終わり。

これで、ベース機能はできました。

thymeleafで使うjsやcssの静的ファイルは、

src/main/webapp配下に置けば、認識されます。

インポートする際のパスは、webappまでは省略し、以下のパスを記述します。

webapp/js/sample.jsであれば、src="js/sample.js"なんて感じです。

 

まあ、静的ファイルはapache サーバーをプロキシとして使ってしまえば、

htdocsにおいて終わりなのですが。

 

本ブログは、実は今回の記事に書く内容がおおきなきっかけだったりします。

thymeleafの使い方が、肝心な設定がまぁ、載っていない...

今後は時代に退行してmaven とかEJB とか書きだすかもしれませんので、

良ければお付き合いください。

近日中に、簡単なスケルトンプロジェクトを配布可能な形にします。

 

ここまで枠ができれば、まあ、みなさん好き好きにできるでしょう。

May you have an enjoyable coding lifeというかんじですねぇ。

 

ちゃんちゃん。