thymeleaf 模板引擎

thymeleaf

简介

​ SpringBoot默认不支持JSP,因为jsp相对于一些模板引擎,性能都比较低,官方推荐使用thymeleaf。

​ Thymeleaf是一个Java模板引擎开发库,可以处理和生成HTML、XML、JavaScript、CSS和文本,在Web和非Web环境下都可以正常工作。

如果实在想使用jsp,参考https://blog.csdn.net/a1405/article/details/100037062

HelloWorld

导入依赖

​ 选择web和thymeleaf。

创建User
public class User {
    private Integer id;
    private String name;
    private int age;
    private String address;
    
	public User() {
	}
	public User(Integer id, String name, int age, String address) {
		this.id = id;
		this.name = name;
		this.age = age;
		this.address = address;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
}
创建Controller
@Controller
@RequestMapping("/user")
public class UserController {
    
     @RequestMapping("/list")
    public String  listUser(Model model) {
        List<User> userList = new ArrayList<User>();
        for (int i = 0; i <10; i++) {
            userList.add(new User(i,"张三"+i,20+i,"中国广州"));
        }
        
        model.addAttribute("users", userList);
        return "/user/list";
    }
}
创建list.html
注意模版文件是放在tempplates目录下。

这里我们将文件放在/templates/user/下面。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Insert title here</title>
</head>
<body>
  <h2>用户列表</h2>
  <div>
     <ul>
         <li  th:each="user:${users}">
              <span th:text="${user.id}"></span>-
             <span th:text="${user.name}"></span>-
             <span th:text="${user.age}"></span>-
             <span th:text="${user.address}"></span>
         </li>
     </ul>
   </div>
</body>
</html>
运行测试

语法

引入标签

​ html标签里引入xmlns:th="http://www.thymeleaf.org"才能使用th:*这样的语法。

引入URL
<a th:href="@{http://www.baidu.com}">绝对路径</a>

<a th:href="@{css/jquery.min.css}">相对路径</a>
引入默认的static下的css文件夹下的css文件,类似的标签有: th:href 和 th:src 。
获取变量

​ 通过${}取值,对于JavaBean的话,使用变量名.属性名获取

<dd th:text="${u.name}"></dd>
字符串替换
<span th:text="'Welcome to our application, ' + ${user.name} + '!'"></span>
运算符

​ (+, -, *, /, %)和(>, <, <=,>=,==,!=)

条件
  • th:if是该标签在满足条件的时候才会显示

  • th:unless是不成立时候才显示

  • th:switch

    <span th:switch="${member.uid}">
        <p th:case="100">uid为101的员工来了</p>
        <p th:case="99">uid为102的员工来了</p>
        <p th:case="*">没有匹配成功的数据!</p>
    </span>
    
遍历
<table>
    <tr><td>No.</td><td>UID</td><td>姓名</td><td>年龄</td><td>偶数</td><td>奇数</td></tr>
    <tr th:each="user,memberStat:${allUsers}">
        <td th:text="${memberStat.index + 1}"/>
        <td th:text="${user.uid}"/>
        <td th:text="${user.name}"/>
        <td th:text="${user.age}"/>
        <td th:text="${memberStat.even}"/>
        <td th:text="${memberStat.odd}"/>
    </tr>
</table>
其他
  • ${#dates.createNow()}

  • ${#dates.format(member.birthday,‘yyyy-MM-dd’)

  • ${#strings.trim(‘www.baidu.cn’)}

  • ${#strings.isEmpty(name)}

  • 操作范围属性

    <p th:text="'requestMessage = ' + ${requestMessage}"/>
    <p th:text="'sessionMessage = ' + ${session.sessionMessage}"/>
    <p th:text="'applicationMessage = ' + ${application.applicationMessage}"/>
    

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值