Spring Boot 整合 Thymeleaf 模板引擎(四) 之 表达式语法

注:这里只列举常用的表达式语法,更多其他详细参详thymeleaf官方文档https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html

1.使用文本

声明th:*属性的命名空间

创建一个属性文件内容如下:

home.welcome=Welcome to our fantastic grocery store!

th:text 设置文本内容

标题

..

Welcome to our <b>fantastic</b> grocery store!

th:utext 设置未转义文本内容

Welcome to our grocery store!

...

Welcome to our fantastic grocery store!

th:href 用于定义超链接

测一下

th:src 用于外部资源的引入,例如图片,js文件

555

 th:attr 用于设置任意属性

th:id 类似html标签中的id属性

 th:value 用于标签赋值,类似

 th:action 定义后台控制器路径,类似

标签的action属性。


    
    

th:object 用于数据对象绑定,与后台controller中参数保持一致,和选择(星号)表达式

    .... 
    @RequestMapping("login")
    public String login(User user) {
        System.out.println(user.getName()+","+user.getPassword());
        return "login";
    }


 th:field 常用于表单字段绑定。通常与th:object一起使用。 属性绑定、集合绑定


 thymeleaf里的th:field等同于th:nameth:value,还会生成对应的id

th:if 条件判断(成立执行)

th:unless 条件判断(不成立执行)

 标签只有在th:if中条件成立时才显示,th:unless于th:if恰好相反,只有表达式中的条件不成立,才会显示其内容。

th:switch th:case 用于多个同等级相同目的判断,多选一时使用

 th:each 用于遍历集合中的对象,相当于jstl中的标签

临时变量 迭代对象计数 迭代对象索引 当前循环是否偶数 当前循环是否奇数

2.标准表达式语法

#{...}:Message 表达式

外部文本

#{...}:变量表达式

普通文本

*{...}:选择表达式

	

name:

age:

name:

age:

name:

age:

name:

age:

name:

age:

@{...}:链接表达式

测一下
555

~{...}:片段表达式

支持两种语法结构

推荐:~{templatename::fragmentname}

支持:~{templatename::#id}

templatename:模版名,Thymeleaf会根据模版名解析完整路径:/resources/templates/templatename.html,要注意文件的路径。

fragmentname:片段名,Thymeleaf通过th:fragment声明定义代码块,即:th:fragment="fragmentname"

id:HTML的id选择器,使用时要在前面加上#号,不支持class选择器。

 

在我们的模板中,我们经常需要包含其他模板中的部分,页脚,标题,菜单等部分......

为了做到这一点,Thymeleaf需要我们定义这些部分,“片段”,以便包含,这可以使用th:fragment属性来完成

假设要创建一个页脚,因此我们创建一个 resources/templates/footer.html 包含以下代码

同一模板片段引入




    

测试布局

© 2011 The Good Thymes Virtual Grocery

不同模板片段引入

没有引用片段 th:fragment


...
© 2011 The Good Thymes Virtual Grocery
... ...
...

th:insertth:replace(和th:include)之间的区别

th:insert:将代码块片段整个插入到使用了th:insert的HTML标签中,

th:replace:将代码块片段整个替换使用了th:replace的HTML标签中,

th:include:将代码块片段包含的内容插入到使用了th:include的HTML标签中(thymeleaf3.0不推荐)

采用官方例子说明三者的区别 :

© 2011 The Good Thymes Virtual Grocery

 三种引入方式:



  ...

  

显示的结果如果:



  ...
 
  
© 2011 The Good Thymes Virtual Grocery
© 2011 The Good Thymes Virtual Grocery
© 2011 The Good Thymes Virtual Grocery

3.字符串拼接 


4.算术运算

支持+-*/%

5.逻辑运算

gt>),lt<),ge>=),le<=),not!) ,eq==),neqne!=

 

你可能感兴趣的:(springboot,thymeleaf)