[JAVAEE] Thymeleaf 基本语法:常用表达式

Thymeleaf 基本语法

常用表达式
  1. 变量表达式 ${ }
  • 使用方法:th:xx = “${ }” 获取对象属性值给 th:xx 。
  • 后台代码:
Student s=new Student(2019001,"小明"); 
model.addAttribute("stu",s);
  • 前端代码:

${stu.***} 获得stu对象属性值
th:text:文本标签,用于进行文本替换

<p th:text="${stu.id}"></p> 
<p th:text="${stu.name}"></p>

补充:th:text 和 th:utext
  • th:text 不会解析html(称为被HTML转义)
  • th:utext 会解析html(称为不执行HTML转义)
  • 后台代码:
model.addAttribute("msg","<h1>hello</h1>");
  • 前端代码:
<p th:text = "${msg}" >hello</p> 
<p th:utext = "${msg}" >hello</p>
  • 运行结果:
    在这里插入图片描述

${ } 一些用法示例

字符串连接、数学运算、布尔逻辑和三目运算等。

  • 字符串连接:
    <p th:text=" '欢迎' + ${stu.name} ">hello</p>
  • 错误用法:
    <p th:text=" 欢迎 ${stu.name} ">hello</p>
  • | | 和 + 效果一样
    <p th:text=" |欢迎 ${stu.name}| ">hello</p>
  • 三目运算
    <p th:text=" '欢迎' + ${ stu.name!=null ? stu.name : 'nobody' } ">hello</p>
  • 算数运算
    <p th:text="1+3">结果1</p>
    <p th:text="9%2">结果2</p>

补充:三目运算
  • If-then-else:
    (if) ? (then) : (else)
  • If-then:
    (if) ? (then)
  • Default:
    (value) ? : (defaultvalue)

  1. 选择(星号)表达式 *{ }
  • 使用方法:首先通过 th:object 获取对象,然后使用 th:xx = “*{ }” 获取对 象属性值(*表示不用写对象名)。
  • 后台代码:
Student s=new Student(2019001,"小明"); 
model.addAttribute("stu",s);
  • 前端代码:
<div th:object="${stu}">
    <p th:text="*{id}"></p>
    <p th:text="*{name}"></p>
</div>
  • 运行结果
    在这里插入图片描述

  1. 消息(#)表达式 #{ }
  • 主要是用于读取自定义属性文件(.properties)中的值,常用于国际化。
    (1)在 templates 目录中新建属性文件 message.properties,并写入以下内容:
home.province=Hubei 
home.city=Wuhan

(2)在 application.properties 中加入属性文件所在位置:

#指定属性文件所在位置 
spring.messages.basename=templates/message

(3)页面中读取配置文件:

<p th:text="#{home.province}"></p>
<p th:text="#{home.city}"></p>
  • 运行结果:
    在这里插入图片描述

  1. 链接表达式 @{ }
  • 使用方法:通过链接表达式 @{ } 直接拿到应用路径,然后拼接静态资源路径。

th:src 用于设置图片来源
th:attr 用于设置属性
HTML原生写法:<img src="/images/苏轼.jpg">
注:先将图片资源放在 static 的 images 目录中

<img th:src="@{/images/苏轼.jpg}"/>
另一种写法:
<img th:attr="src=@{/images/苏轼.jpg}" />

补充:如果图片没有显示,需要 build 菜单 → rebuild项目

  • th:href 用于设置超链接值(http://localhost:8080/)
    <a th:href="@{/}">首页</a>

  • 生成的url:http://localhost:8080/test1?id=2019001&name=小明
    <a th:href="@{/test1(id=${stu.id}, name=${stu.name})}">跳转</a>

  • ( 变量名=值,变量名=值 ) 括起作为url参数

  • 生成的url:http://localhost:8080/test5/2019001/小明

  • 称为:RESTful 风格请求
    <a th:href="@{/test5/{id}/{name}(id=${stu.id},name=${stu.name})}">跳转</a>


  1. 片段表达式 ~{ }
  • 一般和模版布局语法一起使用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值