thymeleaf基础语法

thymeleaf学习笔记

简单表达式

  • ${...} 变量表达式; 变量值的替换,可以简单理解为后端注入到前端的变量值

Name: Sebastian

  • *{...} 选择变量表达式;对比变量表达式,选择变量表达式优先选择指定的变量,若没有指定,则和变量表达式完全一致

Name: Sebastian

  • {...} 消息表达式;从属性文件中获取的值替换html文件中的占位符号

Welcome to our grocery store !

  • @{...} 链接url表达式;
view
logfile

文字类型

  • 字符型: ‘one text’ , ‘Another one!’
  • 数值型: 0 , 34 , 3.0 , 12.3
  • Boolean型: true , false
  • 空值: null
  • 文本字符串: one , sometext , main

字符串操作

  • 字符串连接: +

  • 文字替换: |The name is ${name}|

  • 内联表达式:[[...]]

数值型操作:

  • 运算符: + , - , * , / , %
  • 负号: -
  • Boolean操作:
  • 运算符: and , or
  • 非运算符: ! , not
  • 比较相等算法:
  • 比较: > , < , >= , <= ( gt , lt , ge , le )
  • 相等算法: == , != ( eq , ne )

条件语句:

  • If-then: (if) ? (then)

    
大于 20
小于 20
  • If-then-else: (if) ? (then) : (else)
error
  • switch

User

Admin

Unknown

循环

  • each
  • 小动物 - 此处文本会被覆盖

模版语法

  • 定义模版片段
© 2011 The Good Thymes Virtual Grocery
  • 引入模版
  • 三种不同的各式
  • ~{templatename::selector},指定选择器selector的模版
  • ~{templatename},整个模版
  • ~{::selector} ,同一模版中匹配指定的选择器片段
  • 删除模版

  • 5种不同的删除方式
  • all : 删除所有
  • body: 不删除包含的标签,删除所有的子项
  • tag: 删除包含的标签,但是不删除子项
  • all-but-first:除第一个子项不删除,其他均删除
  • none: 什么都不干

工具类

  • execInfo: 有关正在处理模版的信息
  • messages: 变量表达式中获取外部化消息的方法,和#{…}语法获得的方式相同.
  • uris: 转义URL/URI的方法
  • conversions: 配置转换相关的方法
  • dates: java.util.date对象的方法: 格式化,组件提取.
  • calendars: 类似dates,calendar对象相关.
  • numbers: 用户格式化数字对象的方法.
  • strings: methods for String objects: contains, startsWith, prepending/appending, etc.
  • objects: methods for objects in general.
  • bools: methods for boolean evaluation.
  • arrays: methods for arrays.
  • lists: methods for lists.
  • sets: methods for sets.
  • maps: methods for maps.
  • aggregates: methods for creating aggregates on arrays or collections.
  • ids: methods for dealing with id attributes that might be repeated (for example, as a result of an iteration).

其他

  • 基础语法之间都可以任意嵌套
'User is of type ' + (${user.isAdmin()} ? 'Administrator' : (${user.type} ?: 'Unknown'))
  • 默认表达式
...

Age: 27.

  • 哑操作符,(_)表示不处理任何结果
...

Age: 27.

  • 数据类型转换; 变量/选择表达式的一个双括号语法,调用注册的转换服务,默认调用对象的toString方法
  • 懒加载,条件表达式为false,被迭代变量永远不会被初始化
context.setVariable(
     "users",
     new LazyContextVariable>() {
         @Override
         protected List loadValue() {
             return databaseRepository.findAllUsers();
         }
     });
context.setVariable(
     "users",
     new LazyContextVariable>() {
         @Override
         protected List loadValue() {
             return databaseRepository.findAllUsers();
         }
     });
  • 局部变量,th:with语法声明局部变量,只在包含的标签范围内使用

参考文档

  1. 官方文档

  2. thymeleaf基础语法

你可能感兴趣的:(thymeleaf基础语法)