ThymeleafテンプレートエンジンThymeleafを統合するSpringBootの使用を開始する

SpringBootはThymeleafを統合します

画像

Thymeleafの紹介

  • 1. Thymeleafは、VelocityやFreeMarkerに似たテンプレートエンジンであり、JSPを完全に置き換えることができます。他のテンプレートエンジンと比較して、次の3つの非常に魅力的な機能があります
  • 2. Thymeleafは、ネットワーク環境と非ネットワーク環境の両方で実行できます。つまり、アーティストはブラウザーでページの静的効果を表示でき、プログラマーはサーバー上のデータを使用して動的ページ効果を表示できます。
  • 3.Thymeleafの機能はすぐに使用できます。標準とSpring標準の2つの方言を提供し、テンプレートを直接適用してJSTLとOGNLの式効果を実現し、テンプレートの設定、JSTLの変更、タグの毎日の変更の手間を省きます。同時に、開発者はカスタム方言を拡張および作成することもできます。

もちろん、Spring Bootページには、次のような多数のテンプレートが用意されています。

  • 1.FreeMarker
  • 2.Groovy
  • 3.口ひげ
  • 4. Thymeleafの ユーザーがほとんどです
  • 5.速度
  • 6. Beetlの 国内クレームは上記の10倍高速ですが、Beetl使用してpom.xmlファイルに追加する人は誰もいません。
 <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
 </dependency>
 # 添加nekohtml的目的:为了非严格遵守w3c编程规范
 # 比如 <input /> 必须要有结束符 否则编译报错
  <dependency>
        <groupId>net.sourceforge.nekohtml</groupId>
        <artifactId>nekohtml</artifactId>
        <version>1.9.22</version>
  </dependency>

application.ymlでThymeleafを構成します。公式の推奨事項は、yaml / yml形式の構成ファイルを使用することです。

yamlの使用の概要

YAML言語(発音:Yeah Maiou)ymlの設計目標は、人々が読み書きしやすくすることです。これは本質的に、ユニバーサルデータシリアル化形式です。
基本的な文法規則は次のとおりです。

  • 1.大文字と小文字を区別
  • 2.インデントを使用して階層関係を示します
  • 3.インデント時にTabキーを使用することできませんスペースのみを使用できます。
  • 4.同じレベルの要素が左揃えである限り、インデントされたスペースの数は重要ではありません。
spring:
  thymeleaf:
    cache: false # 开发时关闭缓存,不然没法看到实时页面
    mode: HTML # 用非严格的 HTML  不加nekohtml依赖的话这个模式用不了 
    encoding: UTF-8
    servlet:
      content-type: text/html   

Thymeleafをテストする

  • テスト用のJavaBeanユーザーを作成する
@Data //Lombok的注解 自动添加get set toString hashCode 等等基本方法
@Component //把这个bean注册到Spring
public class PersonBean implements Serializable {
    
    

    private String name;
    private Integer age;

}

  • テストコントローラーを作成する
@Controller
@RequestMapping(value = "thymeleaf")
public class IndexController {

    @RequestMapping(value = "index", method = RequestMethod.GET)
    public String index(Model model) {
        PersonBean person = new PersonBean();
        person.setName("张三");
        person.setAge(22);

        List<PersonBean> people = new ArrayList<>();
        PersonBean p1 = new PersonBean();
        p1.setName("李四");
        p1.setAge(23);
        people.add(p1);

        PersonBean p2 = new PersonBean();
        p2.setName("王五");
        p2.setAge(24);
        people.add(p2);

        PersonBean p3 = new PersonBean();
        p3.setName("赵六");
        p3.setAge(25);
        people.add(p3);

        model.addAttribute("person", person);
        model.addAttribute("people", people);

        return "index";
    }
}
  • テストページを作成する
  • 空のindex.htmlページを作成します
  • html5と入力し、Tabキーを押します
<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-4.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Hello Thymeleaf</title>
</head>
<body>
    <div>
        <span>访问 Model:</span><span th:text="${person.name}"></span>
    </div>
    <div>
        <span>访问列表</span>
        <table>
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>年龄</th>
                </tr>
            </thead>
            <tbody>
                <tr th:each="human : ${people}">
                    <td th:text="${human.name}"></td>
                    <td th:text="${human.age}"></td>
                </tr>
            </tbody>
        </table>
    </div>
</body>
</html>
  • htmlタグを変更してthymeleafエンジンを導入し、th:*構文を他のタグで使用できるようにします。宣言は次のとおりです。
<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-4.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
  • SpringBoot Thymeleafテストへのアクセスをテストする次のデータが表示された場合、テストは成功しています。
    [外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-1sb711i2-1588560276266)(02F69E2682964569845B93966674C7D3)]
  • テストに成功しました!

Springがyml形式の構成ファイルの使用を公式に推奨するのはなぜですか

  • パワフル
  • 複雑なデータ型「オブジェクト配列マップなど」を格納できます。
  • 構成ファイルの構造を明確にする

yml構成ファイルはJavaBean初期化データを構成します

  1. Userクラスを変更して、次の属性を追加します
    private Map<String,Object> hobby; //爱好
    private List<String> pets; //所有宠物
    private boolean ishappy; //是否开心 
  1. 次の構成をymlファイルに追加します
person:
  name: 师文远
  age: 22
  hobby: {
    
    v1:,v2:,v3: rap}
  pets:
    - aa1
    - aa2
    - aa3
  ishappy: true
  1. ユーザークラス名の上にコメントを追加します
@ConfigurationProperties(value = "person") //与yml中的对象保持一致
  1. テストクラスに追加する
    @Resource
    private User user;
    
    @Test
    public void getUserInfo() {
    
    
        System.out.println(user);
    }
  1. 試験結果

おすすめ

転載: blog.csdn.net/weixin_43420255/article/details/105914357