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>

原文地址:https://www.cnblogs.com/xzmiyx/p/9890306.html