web-dev-qa-db-ja.com

SpringでJSPの代わりにThymeleafを使用する利点は何ですか?

SpringのビューにJSPの代わりにThymeleafを使用することで得られる利点は何でしょうか。

8
jsb9009

一般的に引用される利点は次のとおりです。

  • 春の統合はThymeleafのファーストクラスの側面です(たくさんの ここにドキュメントがあります )。このコンテキストでの「ファーストクラス」とは、偶発的または部分的に実装されていないことを意味し、Thymeleafの意図的で十分にサポートされている側面です。
  • Spring式言語は、JSP式言語よりも強力です。 「より強力」は主観的に聞こえますが、この場合はSpringとの統合について話しているため、Spring独自のEL(モデル属性、フォームバッキングBean、および国際化を認識)は、VanillaJSP式よりもすぐに使用できます。
  • Thymeleafは、${#calendars.format(...)}${#strings.capitalize(...)}などの便利なフォーマットユーティリティを提供します。これらはSpringと十分に統合されています。 SpringMVCによって伝播されたモデルBeanをこれらの関数に渡すことができます。
  • ビルド/デプロイ/テストのフィードバックループは、Thymeleafによって短縮されています。これが例です。 Webページのレイアウトまたはスタイルを変更するとします。 Thymeleafでは、これには次のことが含まれます。(1).htmlテンプレートを開き、編集して、(場合によっては)リンクされた.cssファイルを編集します。 (2)F5を押して、ブラウザで更新します。 (3)幸せになるまで繰り返します。対照的に、JSP実装での同じアクティビティには、次のものが含まれます。(1)アプリケーションを開発サーバーにデプロイする。 (2)起動します。 (3)いくつかの変更を加えます。 (4)変更を再デプロイ(またはホットデプロイ)します。 (5)幸せになるまで繰り返します。
  • 最後のポイントは、JSPのこの制限を強く示唆しています。コンテナの外では使用できません。対照的に、Thymeleafテンプレートはコンテナーの外部で使用できます。例えば; SpringのMVCテストサポートはThymeleafと十分に統合されており、アプリケーションを起動せずに、テストコンテキスト内で解決済みのThymeleafテンプレートをレンダリング(およびテスト/アサート)できます。
  • ThymeleafテンプレートはHTML(用語は「ナチュラルテンプレート」)のように見え、静的コンテンツ(テンプレート/プロトタイプデータを含む)としてブラウザーでレンダリングすることもできるため、Webレイヤーとバックエンドが異なる人々/専門分野によって作成されている場合、ThymeleafはWebデザイナーはJSPよりも扱いやすいです。
10
glytching