web-dev-qa-db-ja.com

thymeleafはどのような解決策ですか?

最近、JSPではなくthymeleafが好まれていることを読みました。 thymeleafは、JSPでは解決できない問題をどのように解決しますか? thymeleafは他のテンプレートエンジンと比較してどうですか?

25

まあ、これは本当に意見に基づいた質問であり、そのような私の答えになります:)

主な違いは、JSPがJavaサーブレットクラスにコンパイルされるのに対して、Thymeleafはテンプレートファイルを読み取り、DOMを解析してからモデルを適用することです。これにより、パフォーマンスオーバーヘッドが発生し、JSPにEdge Thymeleafのテンプレートキャッシュが有効になっている場合でも、Thymeleafを使用すると開発がはるかに簡単になります。その理由は次のとおりです。

  • Thymeleafは、テンプレートとしてプレーンHTMLを使用します。 data-th属性または元のカスタム名前空間th:属性を使用して、純粋なHTML5アプローチを選択できます。プレーンHTMLを使用する利点は、ブラウザーで開くことができることです。これにより、デザイナーが作業をしやすくなります。デザイナーと開発者の両方が同じファイルで作業できます。

  • Thymeleafテンプレートは、アプリケーションサーバーなしで使用でき、組み込みサーバーでもうまく機能します。テンプレートの統合テストを行うためにフープをジャンプする必要はありません。これは、 Thymeleaf独自のスタンドアロンテンプレートテストライブラリ または機能テストの一部として実行できます。 Spring MVCコントローラーの統合テスト。

  • Thymeleafには、より軽量で強力な構文があり、Springエコシステムとの統合が優れています。 Springの概念からSpringと統合するように設計されましたが、Spring以外でも使用できます。メールやレポートの生成に役立ちました。

  • Thymeleafテンプレートにより、再利用が可能になります。小さなテンプレートフラグメントを作成して、他のテンプレートで再利用できます。これは、多くのテンプレートを使用するプロジェクトの命の恩人です。また、すぐに使用できる優れたレイアウトサポートもありますが、柔軟性とパワーが必要な場合は community plugins を見つけることもできます。

免責事項:Thymeleafの開発は1年以上行っていませんが、私が見ることができることからは、それほど変わっていません。また、Springの この記事 をご覧ください。少し古いですが、主な違いを説明しています。

31