springboot模板
1、thymeleaf模板
2.Freemarker模板
Thymeleaf模板
首先导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
Spring Boot官方文档建议在开发时将缓存关闭,那就在application.properties文件中加入下面这行
spring: thymeleaf: cache: true
user
package com.jt.springboot.entity; import lombok.Data; @Data public class user { private Integer uid; private String uname; private String pwd; public user(Integer uid, String uname, String pwd) { this.uid = uid; this.uname = uname; this.pwd = pwd; } public user() { } }
controller层
package com.jt.springboot.controller; import com.jt.springboot.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; @Controller @RequestMapping("/thymeleaf") public class UserController { @RequestMapping("/list") public String hello(HttpServletRequest request){ request.setAttribute("msg","传单个字符"); List<user> userList=new ArrayList<>(); userList.add(new user(1,"zs","123")); userList.add(new user(2,"ww","111")); userList.add(new user(3,"ss","222")); request.setAttribute("userList",userList); request.setAttribute("htmlStr","<span style='color:red' >转译html代码块</span>"); return "list"; } }
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> </body> </html>
html加入提示
<html xmlns:th="http://www.thymeleaf.org">
遍历
htlm页面
<!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> <div th:utext="${htmlStr}"></div> </body> </html>
Freemarker模板
学习网站:http://freemarker.foofun.cn/
导入pom依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
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/freemarker 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> a ${ctx1}和${ctx2} a </body> </html>
foot.ftl
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>$Title$</title> </head> <body> 版权信息 </body> </html>
common.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div th:fragment="h1"> 第一部分内容 </div> <div th:fragment="h2"> 第二部分内容 </div> <div th:fragment="h3"> 第三部分内容 </div> </body> </html>
RoleController
package com.jt.springboot.controller; import com.jt.springboot.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; @Controller @RequestMapping("/freemarker") public class RoleController { @RequestMapping("/role/list") public ModelAndView roleList(){ ModelAndView mav = new ModelAndView(); mav.setViewName("/list"); mav.addObject("name",null); 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"; } }