【Java】Thymeleaf基本 (SpringBoot)
7788 ワード
Thymeleafとは
- SpringBootで標準で使われるテンプレートエンジン
- テンプレートエンジンを使うことでWebアプリケーション(MPA)を作るのに必要な機能が追加される
- 例えばHTMLファイルの中に
[[]]
でJavaの変数名[[${modelValue}]]
を書くことができる
- これで画面が表示される時に、HTMLファイルがテンプレートとなって、Placefolder(=置き換わる場所)をSpringフレームワークが書き換えてくれる
- テンプレートの機能を果たすものをThymeleafという
使用方法
- build.gradleファイルのdependenciesにThymeleafが定義がされていることを確認
dependencies {
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
}
テンプレートファイルの呼び出し
- デフォルト設定では
/resources/templates/【Controller の戻り値】.html
配下にテンプレートファイルを記述
- 以下の例はMain.javaで
HelloController
を呼び出し、クラスパス以下のテンプレートファイルが探索されsrc/main/resources/templates/hello.html
がテンプレートファイルとして利用される。
main.java
package sample;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
HelloController.java
package sample.thymeleaf.web;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "Hello Thymeleaf!!");
return "hello";
}
}
hello.html
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Hello Thymeleaf</title>
</head>
<body>
<h1 th:text="${message}"></h1>
</body>
</html>
テンプレートファイルでテキストを埋め込み
-
th:text=【出力する値】
そのタグのテキスト要素を出力
-
<h1 th:text="'hello world'"></h1>
-
<h1>[['hello world!!']]</h1>
で直接テンプレート上に値を出力することもできる
HelloController.java
package sample.thymeleaf.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "hello";
}
}
hello.html
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Hello Thymeleaf</title>
</head>
<body>
<h1 th:text="'hello world'"></h1>
</body>
</html>
[[]]
でJavaの変数名[[${modelValue}]]
を書くことができるdependencies {
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
}
/resources/templates/【Controller の戻り値】.html
配下にテンプレートファイルを記述HelloController
を呼び出し、クラスパス以下のテンプレートファイルが探索されsrc/main/resources/templates/hello.html
がテンプレートファイルとして利用される。main.java
package sample;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
HelloController.java
package sample.thymeleaf.web;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "Hello Thymeleaf!!");
return "hello";
}
}
hello.html
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Hello Thymeleaf</title>
</head>
<body>
<h1 th:text="${message}"></h1>
</body>
</html>
th:text=【出力する値】
そのタグのテキスト要素を出力<h1 th:text="'hello world'"></h1>
<h1>[['hello world!!']]</h1>
で直接テンプレート上に値を出力することもできるHelloController.java
package sample.thymeleaf.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "hello";
}
}
hello.html
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Hello Thymeleaf</title>
</head>
<body>
<h1 th:text="'hello world'"></h1>
</body>
</html>
Author And Source
この問題について(【Java】Thymeleaf基本 (SpringBoot)), 我々は、より多くの情報をここで見つけました https://qiita.com/suema0331/items/764eed5328cf4e328161著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .