SpringBoot模板
Thymeleaf模板
相关pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Spring Boot官方文档建议在开发时将缓存关闭,那就在application.properties文件中加入下面这行
spring.thymeleaf.cache=false
对应的后台代码
package com.huang.springboot02.entity; import lombok.Data; /** * @auther 宇晨 * @company * @create 2019-11-25-20:12 */ @Data public class User { private Integer uid; private String uname; private String pwd; public User() { } public User(Integer uid, String uname, String pwd) { this.uid = uid; this.uname = uname; this.pwd = pwd; } }
package com.huang.springboot02.controller; import com.huang.springboot02.entity.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; /** * @auther 宇晨 * @company * @create 2019-11-25-20:16 */ @Controller @RequestMapping("/thymeleaf") public class UserController { @RequestMapping("/list") public String hello(HttpServletRequest request){ /** * 1、获取单个值 * 2、能够在html页面进行遍历展示 * 3、如何在html页面转义html代码块 */ request.setAttribute("msg","传输单个字符串!!!"); List<User> userList = new ArrayList<>(); userList.add(new User(1,"zs","123")); userList.add(new User(2,"ls","456")); userList.add(new User(3,"ww","789")); request.setAttribute("userList",userList); request.setAttribute("htmlStr","<span style='color:red' >转义html代码块<span>"); return "list"; } }
前台HTML页面
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>thymeleaf模板知识点介绍</title>
</head>
<body>
<div th:text="${msg}"></div>
<table width="60%" border="1">
<tr>
<td>id</td>
<td>用户名</td>
<td>密码</td>
</tr>
<tr th:each="u : ${userList}">
<td th:text="${u.uid}"></td>
<td th:text="${u.uname}"></td>
<td th:text="${u.pwd}"></td>
</tr>
</table>
<table th:utext="${htmlStr}"></table>
<!--<div th:include="common.html"></div>-->
</body>
</html>

Freemarker模板
导入pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!--可以不加,但是做项目的时候可能会用-->
<resources>
<!--解决mybatis-generator-maven-plugin运行时没有将XxxMapper.xml文件放入target文件夹的问题-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<!--freemarker模板也读取需要注释标红地方-->
<resource>
<directory>src/main/resources</directory>
<includes>
<!--<include>*.properties</include>-->
<!--<include>*.xml</include>-->
<!--<include>*.yml</include>-->
</includes>
</resource>
</resources>
application.yml文件的默认配置
spring: thymeleaf: cache: false freemarker: # 设置模板后缀名 suffix: .ftl # 设置文档类型 content-type: text/html # 设置页面编码格式 charset: UTF-8 # 设置页面缓存 cache: false # 设置ftl文件路径,默认是/templates,为演示效果添加role template-loader-path: classpath:/templates/role mvc: static-path-pattern: /static/**
list.ftl
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>取值</h2>
<h3>提供默认值</h3>
welcome 【${name}】 to freemarker!
<h3>exists用在逻辑判断</h3>
<#if name?exists>
${name}
</#if>
<h2>条件</h2>
<#if sex=='girl'>
女
<#elseif sex=='boy'>
男
<#else>
保密
</#if>
<h2>循环</h2>
<table border="1px" width="600px">
<thead>
<tr>
<td>ID</td>
<td>角色名</td>
<td>描述</td>
</tr>
</thead>
<tbody>
<#list roles as role>
<tr>
<td>${role.rid}</td>
<td>${role.roleName}</td>
<td>${role.desc}</td>
</tr>
</#list>
</tbody>
</table>
<h2>include</h2>
<#include 'foot.ftl'>
<h2>局部变量(assign)/全局变量(global)</h2>
<#assign ctx1>
${springMacroRequestContext.contextPath}
</#assign>
<#global ctx2>
${springMacroRequestContext.contextPath}
</#global>
sss
${ctx1}和${ctx2}
sss
</body>
</html>
common.ftl
<div th:fragment="h1"> 第一部分内容 </div> <div th:fragment="h2"> 第二部分内容 </div> <div th:fragment="h3"> 第三部分内容 </div>
相关controler层的Java代码
package com.huang.springboot02.controller; import com.huang.springboot02.entity.Role; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import java.util.ArrayList; import java.util.List; /** * @auther 宇晨 * @company * @create 2019-11-26-16:55 */ @Controller @RequestMapping("/freemarker") public class RoleController { @RequestMapping("/role/list") public ModelAndView roleList(){ ModelAndView mav = new ModelAndView(); mav.setViewName("/list"); mav.addObject("name","ww"); mav.addObject("sex","gay"); List list = new ArrayList(); list.add(new Role(1,"老师","教书育人")); list.add(new Role(2,"学生","知识改变命运")); mav.addObject("roles",list); return mav; } @RequestMapping("toLogin") public String toLogin(){ return "login"; } }
测试结果:


浙公网安备 33010602011771号