記事のディレクトリ
まず、共通のテンプレート比較エンジン
簡単な紹介 | |
---|---|
JSP | Java Server Pages 、動的なウェブ技術、コンパイルして実行し、クライアントにページ全体の背中を生成するためのJSPエンジン内のアプリケーション・サーバによって。サポート式言語(EL、JSTL)。それは、サーバー側のレンダリング、消費性能上にあるので、とてもspringbootプロジェクトは、JSPを使用することは推奨されません |
FreeMarkerの | ファイルは一般として保存されているxxx.ftl (JVMのメモリを取ることはありません)サーブレットコンテナに依存しない、MVCパターンに厳密に依存、構文がより複雑なコントラストthymeleafです |
thymeleaf | springbootメインプッシュテンプレートエンジン、軽量なテンプレートエンジン(ビジネスロジックの責任を推奨、またはDOMのXMLの解析とより多くのメモリを占有しますされていません)。ブラウザで直接開くと正しく表示することができますことは、それはテンプレートページファイルはHTMLで終わる、表現に影響を与えません。 |
二、thymeleafラベル
①th:テキスト
現在の要素のテキストの内容を設定します。同様の修飾は、同様の特性を開発するためにth:utext
、後者は逃れられないだろうことを除いてhtml
ラベルを
②th:値
現在の要素に設定しvalue
た値を。同様のがありth:src
、th:href
③th:各
要素をループ。th:each="item : ${collection}"
そして、使用しth:text="${item}"
たラベルの割り当てに代入式を
④th:もし
条件付き。同様にth:unless
、th:switch
、th:case
。分析の表示は空ではありませんでしたth:if="${not #strings.isEmpty(result)}"
⑤th:挿入
コードブロックが導入されます。同様目を持って:置き換える番目:類;目:現在のラベルに挿入され、挿入、目:インサート:メインラベルの断片:その一次ラベル、第保持を保持します。TTH:置き換えます。Do自身のないメインラベル、保持目:メインラベルのフラグメント。目:含まれます。Do自身のないメインラベル、番目の保持:メインラベルのフラグメント。(公式3.0の後に推奨しません)。
⑥th:フラグメント
定義されたコードブロック
⑦th:オブジェクト
宣言変数。そして、一般的*{}
に関連して使用
三、thymeleaf表現
①$ {...}:変数式
共通するのは、組み込みオブジェクト
説明 | |
---|---|
CTX | Contextオブジェクト |
その | コンテキスト変数 |
ロケール | 言語オブジェクトのコンテキスト |
リクエスト | 取得HttpServletRequestオブジェクト |
応答 | 取得のHttpServletResponseオブジェクト |
セッション | 取得のHttpSessionオブジェクト |
共通するのは、組み込みの方法
説明 | |
---|---|
ストリング | 文字列の書式設定方法、などのequalsなど、equalsIgnoreCase、長さ、トリム、toUpperCaseの、toLowerCaseメソッド、のindexOf、サブストリング、置き換え、startWith、endsWith、含まれ、containsIgnoreCaseなど |
数字 | formatDecimal |
bools | isTrue、isFalse |
配列 | toArray、長さ、のisEmptyは、のcontainsAllが含まれている等 |
リスト、セット | ToListメソッド、サイズ、のisEmpty、含まれている、のcontainsAll、ソート等 |
マップ | サイズ、のisEmpty、のcontainsKey、のcontainsValue等 |
日付 | 形式、年、月、時間、createNow等 |
②@ {...}:リンク式
あなたは、動的プロジェクトパスを取得することができます
③#{...}:メッセージ発現
④〜{...}:式のコードブロック
これは、2つの文法構造をサポート
:推奨~{templatename::fragmentname}
サポート:~{templatename::#id}
⑤* {...}:変数式を選択します
とに使用th:object
組み合わせ
第四に、ノートthymeleaf使用
1、名前空間を宣言します。xmlns:th="http://www.thymeleaf.org
図2に示すように、テキストコンテンツ設定th:text
、設定input
値th:value
、サイクルの出力th:each
、条件決意th:if
、コードブロックにth:insert
コードブロックが定義されているth:fragment
オブジェクト:番目の変数宣言を
3、th:each
ラベルにリサイクルする必要があります。
図4は、変数式は、多くの組み込みの方法を提供する、方法が組み込まれて使用することで#
先頭を、としないでください#{}
メッセージ式を混乱させる。
5、 、、th:insert
コードブロックに三種類の効果が、大きな違いと同様。th:replace
th:include
thymeleafを使用して五、SpringBootアプリケーション
①の導入thymeleaf
依存性
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>3.0.9.RELEASE</version>
</dependency>
②追加設定
#通常thymeleaf默认的编码是HTML5,此时thymeleaf对一些标签的校验非常严格,通常我们需要添加配置spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.mode=LEGACYHTML5
#关闭thymeleaf缓存 开发时使用 否则没有实时画面
spring.thymeleaf.cache=false
③追加nekohtml
依存を
セットアップspring.thymeleaf.mode=LEGACYHTML5
試合後に追加のライブラリを導入する必要性をNekoHTML
。
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.15</version>
</dependency>