序文:
フォローアップコード監査では、一般的に使用されるフレームワークとテクノロジーを理解し、ここでSpringBootなどの開発知識コンテンツを取り戻す必要があります。
1 | 20x01Thymeleafの概要
Thymeleafは、最新のサーバーサイドJavaテンプレートエンジンWebおよび独立した環境であり、HTML、XML、JavaScript、CSS、さらにはプレーンテキストを処理できます。
Thymeleafの主な目標は、テンプレートを作成するためのエレガントで保守性の高い方法を提供することです。これを実現するために、自然なテンプレートの概念に基づいて構築されており、そのロジックは、デザインプロトタイプとしてのテンプレートの使用に影響を与えない方法でテンプレートファイルに挿入されます。これにより、設計コミュニケーションが改善され、設計チームと開発チームの間のギャップが埋められます。
Thymeleafの設計では、最初からWeb標準、特にHTML5が考慮されています。
Thymeleafは非常に拡張可能なテンプレートエンジン(実際にはテンプレートエンジンフレームワークと呼ぶことができます)であり、テンプレートを詳細に処理する方法を定義およびカスタマイズできます。
アーティファクトをマークするためにいくつかのロジックを適用するオブジェクト(マーク、テキスト、コメント、またはテンプレートがマークでない場合はプレースホルダー)はハンドラーと呼ばれ、これらのハンドラーのコレクションといくつかの追加のアーティファクトは通常方言パートにあります。Thymeleafのコアライブラリは、標準の方言と呼ばれる方言を提供します。これは、ほとんどのユーザーにとって十分なはずです。
1 | 30x02Thymeleafの基本構成
これが主にSrpingBootです
<!--引入thymeleaf依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
プロジェクトのresources \ templatesディレクトリにHTMLファイルを作成します。ここでは、thymeleaf名前空間のインポートに注意してください。インポートしないと、テンプレートをレンダリングできません。
<!doctype html>
<!--注意:引入thymeleaf的名称空间-->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<p th:text="'hello SpringBoot'">hello thymeleaf</p>
</body>
</html>
書き込みコントローラー
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class IndexController {
@GetMapping("home")
public String index() {
return "index";
}
}
ここでのアノテーションは、@ RestControllerアノテーションではなく、@ Controllerを使用する必要があります。そうしないと、エラーが報告されます。
- @RestControllerを使用してコントローラーに注釈を付けるだけの場合、コントローラーのメソッドはjspページまたはhtmlを返すことができず、構成されたビューリゾルバーInternalResourceViewResolverは機能せず、返されるコンテンツはReturnのコンテンツです。
- 指定されたページに戻る必要がある場合は、ビューリゾルバーInternalResourceViewResolverで@Controllerを使用する必要があります。
JSON、XML、またはカスタムのmediaTypeコンテンツをページに返す必要がある場合は、対応するメソッドに@ResponseBodyアノテーションを追加する必要があります。
1 | 40x03Thymeleaf構文
の種類
- 1.変数式
- 2.選択またはアスタリスクの表現
- 3.テキストの国際化表現
- 4.URL式
$ {...}変数式
<span th:text="${book.author.name}">
<li th:each="book : ${books}">
@ {...}リンク式
@{/order/list}
@{/order/details(id=${orderId})}
或者是
<form th:action="@{/createOrder}">
<a href="main.html" th:href="@{/main}">
#{...}メッセージ式
#{main.title}
#{message.entrycreated(${entryId})}
* {...}変数式を選択
<div th:object="${book}">
...
<span th:text="*{title}">...</span>
...
</div>
一般的に使用されるタグ
thタグ属性
1)th:text:テキスト置換;
2)th:utext:htmlテキストの置換をサポートします。
3)th:value:属性の割り当て
4)th:each:ループ要素をトラバースします
5)th:if:判断条件、th:unless、th:switch、th:caseと同様
6)th:insert:コードブロックの紹介。th:replace、th:includeに似ており、一般的なコードブロック抽出シナリオでよく使用されます。
7)th:fragment:th:insertが簡単に参照できるようにコードブロックを定義します
8)th:object:変数を宣言します。通常、怠惰の効果を実現するために* {}と組み合わせて使用されます。
9)th:attr:タグ属性を設定します。複数の属性はコンマで区切ることができます
1 | 50x04終了
内容は、主にレコードとして、比較的単純です。