Thymeleaf
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
base
- src/main/resources/templates/greeting.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Getting Started: Serving Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>
Controller
@Controller
public class GreetingController {
@GetMapping("/greeting")
public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "greeting";
}
}
Syntax
Simple expressions
- Variable Expressions:
${...}
- Selection Variable Expressions:
*{...}
- Message Expressions:
#{...}
- Link URL Expressions:
@{...}
- Fragment Expressions:
~{...}
Literals
- Text literals:
'one text'
, 'Another one!'
,…
- Number literals:
0
, 34
, 3.0
, 12.3
,…
- Boolean literals:
true
, false
- Null literal:
null
- Literal tokens:
one
, sometext
, main
,…
Text operations:
- String concatenation:
+
- Literal substitutions:
|The name is ${name}|
Arithmetic operations:
- Binary operators:
+
, -
, *
, /
, %
- Minus sign (unary operator):
-
Boolean operations:
- Binary operators:
and
, or
- Boolean negation (unary operator):
!
, not
Comparisons and equality:
- Comparators:
>
, <
, >=
, <=
(gt
, lt
, ge
, le
)
- Equality operators:
==
, !=
(eq
, ne
)
Conditional operators:
- If-then:
(if) ? (then)
- If-then-else:
(if) ? (then) : (else)
- Default:
(value) ?: (defaultvalue)
Special tokens: