SpringBootのお勉強-Thymeleafとは-

Thymeleafとは

  • テンプレートエンジンのこと
  • テンプレートにデータを埋め込み、ドキュメントを生成することができる

Thymeleafの特徴

  • テンプレートを、HTML・XHTML準拠の形式で記述することができる
  • Webアプリケーションに適したテンプレートエンジン
  • JSPと比べ歴史が浅いため、知見が浅い

Thymeleafのテンプレート

  • XHTML, HTML5で書かれたテンプレートをDOMに変換してから処理をおこなう
  • 「処理対象のDOMノード」、「DOMノードに適用する処理」は、thネームスペースの属性(th属性)を使用して指定する
    • 例1:トップ画面に戻るためのaタグ
      • <a href="../top.html" th:href="@{/}">トップへ</a>
    • 例2:属性値に指定した値をサニタイジングして、h1タグに出力する(HelloWorld)
      • <h1 th:text="Hello,World!?"></h1>
  • th属性が指定されているDOMノードは、「プロセッサ」コンポーネントとによってDOM操作(追加・削除・変更)が行われる
  • th属性の属性値には、OGNL(Object-Graph Navigation Language)と呼ばれる式言語を指定でき、ユーザー定義のオブジェクトやThymeleafが提供する暗黙オブジェクトにアクセスができる

Dialect

  • 以下の3つを相称して、Dialectと呼ぶ
  • デフォルトでは、StandardDialectクラスが使用される
  • Dialectは拡張可能であり、thymeleaf-spring4では、StandardDialectクラスを継承した、SpringStandardDialectクラスが使用される
  • Dialectを新しく追加することも可能で、例としては以下の2つを利用して利用することができる
    • Thymeleaf Layout Dialect
    • Spring Security Dialect

ThymeleafとSpringの連携

  • Thymeleafが提供するthymeleaf-spring4モジュールを利用する
    • コレを利用することで、JSP向けのタグライブラリと同様の機能をThymeleafで利用することができる。 代表的な機能は以下の通り。
      • SpringMVCのViewとして扱うことができる
      • テンプレート内で、SpringELを利用することができる
      • テンプレートとフォームクラス及び入力値チェック結果のバインドができる
      • Springのメッセージリソースを利用して、国際化対応のメッセージを表示できる

※この記事は、以下の書籍を参考に記載しております。

Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発 | 株式会社NTTデータ | コンピュータ・IT | Kindleストア | Amazon