Springboot整合Thymeleaf
1.Thymeleaf的依赖:
<!-- thymeleaf的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
一般是要升级版本的,请再添加:
<properties> <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version> <thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.version> </properties>
2.存放视图的目录
目录位置:src/main/resources/templates
templates:该目录是安全的。意味着该目录下的内容是不允许外界直接访问的
3.语法
th:text 在页面输出值
th:value 可以将一个值放入到input标签的value中
th:if
<span th:if="${msg}=='瑞文'">男</span>
th:switch
<div th:switch="${id}">
<span th:case="2">2</span>
<span th:case="4">4</span>
<span th:case="6">6</span>
<span th:case="7">7</span>
</div>
th:each
<tr th:each="user,var : ${list}">
<td th:text="${user.userid}"></td>
<td th:text="${user.username}"></td>
<td th:text="${user.age}"></td>
<td th:text="${var.index}"></td>
<td th:text="${var.count}"></td>
<td th:text="${var.size}"></td>
<td th:text="${var.even}"></td>
<td th:text="${var.odd}"></td>
<td th:text="${var.first}"></td>
<td th:text="${var.last}"></td>
</tr>
说明:user为list的赋值变量,不多说;var是list的状态变量,其中:
1,index:当前迭代器的索引从0开始
2,count:当前迭代对象的计数从1开始
3,size:被迭代对象的长度
4,even/odd:布尔值,当前循环是否是偶数/奇数从0开始
5,first:布尔值,当前循环的是否是第一条,如果是返回true否则返回 false
6,last:布尔值,当前循环的是否是最后一条,如果是则返回true否则返回false
th:each迭代Map
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>
<tr th:each="maps : ${map}">
<td th:text="${maps}"></td>
</tr>
</table>
<table border="1">
<tr>
<th>key</th>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>
<tr th:each="maps : ${map}">
<td th:each="entry:${maps}" th:text="${entry.key}"></td>
<td th:each="entry:${maps}" th:text="${entry.value.userid}"></td>
<td th:each="entry:${maps}" th:text="${entry.value.username}"></td>
<td th:each="entry:${maps}" th:text="${entry.value.age}"></td>
</tr>
</table>
4.内置对象
语法:
1,调用内置对象一定要用#
2,大部分的内置对象都以s结尾 ,如strings、numbers、dates
| ${#strings.isEmpty(key)} |
| 判断字符串是否为空,如果为空返回 true,否则返回 false |
| ${#strings.contains(msg,'T')} |
| 判断字符串是否包含指定的子串,如果包含返回 true,否则返回 false |
| ${#strings.startsWith(msg,'a')} |
| 判断当前字符串是否以子串开头,如果是返回 true,否则返回 false |
| ${#strings.endsWith(msg,'a')} |
| 判断当前字符串是否以子串结尾,如果是返回 true,否则返回 false |
| ${#strings.length(msg)} |
| 返回字符串的长度 |
| ${#strings.indexOf(msg,'h')} |
| 查找子串的位置,并返回该子串的下标,如果没找到则返回-1 |
| ${#strings.substring(msg,13)} ${#strings.substring(msg,13,15)} |
| 截取子串,用户与 jdk String 类下 SubString 方法相同 |
| ${#strings.toUpperCase(msg)} ${#strings.toLowerCase(msg)} |
| 字符串转大小 |
5.域对象操作
| request.setAttribute("req", "HttpServletRequest"); |
| <span th:text="${#httpServletRequest.getAttribute('req')}"></span> |
| request.getSession().setAttribute("sess", "HttpSession"); |
| <span th:text="${session.sess}"></span> |
| request.getSession().getServletContext().setAttribute("app","Application"); |
| <span th:text="${application.app}"></span> |
6.URL表达式
绝对路径:<a th:href="@{http://www.baidu.com}">绝对路径</a>
相对路径:
相对于项目的相对路径:<a th:href="@{/show}">相对路径</a>
相对于服务器路径的根:<a th:href="@{~/project2/resourcename}">相对于服务器的根</a>
在url中实现传参:<a th:href="@{/show(id=1,name=zhagnsan)}">相对路径-传参</a>
在url中通过restful风格进行参数传递:<a th:href="@{/path/{id}/show(id=1,name=zhagnsan)}">相对路径-传参-restful</a>

浙公网安备 33010602011771号