# Thymeleaf - https://www.thymeleaf.org/ - modern server-side Java template engine ## pom.xml ```xml org.springframework.boot spring-boot-starter-thymeleaf ``` ## base - src/main/resources/templates/greeting.html ```html Getting Started: Serving Web Content

``` ## Controller ```java @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: - No-Operation: `_`