enn,在市情上比较多的也便是jsp、freemarker、velocity、thymeleaf等页面方案。

Thymeleaf和Freemarker的差异

FreeMarker是一个用Java措辞编写的模板引擎,它基于模板来天生文本输出。
FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。
它不仅可以用作表现层的实现技能,而且还可以用于天生XML,JSP或Java 等。

目前企业中:紧张用Freemarker做静态页面或是页面展示

freemarker与jspSpringBoot中Thymeleaf和Freemarker模板引擎的差别 Python

优点:

1、不能编写java代码,可以实现严格的mvc分离

2、性能非常不错

3、对jsp标签支持良好

4、内置大量常用功能,利用非常方便

5、宏定义(类似jsp标签)非常方便

6、利用表达式措辞

缺陷:

1、不是官方标准

2、用户群体和第三方标签库没有jsp多

Thymeleaf是个XML/XHTML/HTML5模板引擎,可以用于Web与非Web运用。

Thymeleaf的紧张目标在于供应一种可被浏览器精确显示的、格式良好的模板创建办法,因此也可以用作静态建模。
你可以利用它创建经由验证的XML与HTML模板。
相对付编写逻辑或代码,开拓者只需将标签属性添加到模板中即可。
接下来,这些标签属性就会在DOM(文档工具模型)上实行预先制订好的逻辑。
Thymeleaf的可扩展性也非常棒。
你可以利用它定义自己的模板属性凑集,这样就可以打算自定义表达式并利用自定义逻辑。
这意味着Thymeleaf还可以作为模板引擎框架。

thymeleaf优点:静态html嵌入标签属性,浏览器可以直接打开模板文件,便于前后端联调。

配置文件

pom.xml

&lt;!--thymeleaf模块引擎--&gt; <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!--freemarker模块引擎--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>application.yml

server: port: 81 servlet: context-path: /sssbuser: name: ls pwd: 123 age: 19spring: thymeleaf: cache: false freemarker: # 设置模板后缀名 suffix: .ftl # 设置文档类型 content-type: text/html # 设置页面编码格式 charset: UTF-8 # 设置页面缓存 cache: false # 设置ftl文件路径, template-loader-path: classpath:/templates mvc: static-path-pattern: /static/Thymeleaf

大量的数据我暂时不会去实验,如今只有一小部分:

参考:Thymeleaf的基本语法(https://juejin.im/post/5c271fbde51d451b1c6ded58)

thymeleaflist.html

<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head> <meta charset="UTF-8"> <title>Title</title></head><body><h2 >1、传普通值(String)</h2><span th:text="${uname}" ></span><h2>2、传凑集(list)</h2><table> <tr> <td>用户名字</td> <td>用户密码</td> <td>用户年事</td> </tr> <tr th:each="u : ${userList}"> <td th:text="${u.name}"></td> <td th:text="${u.pwd}"></td> <td th:text="${u.age}"></td> </tr></table><select> <option th:each="user :${userList}" th:value="${user.name}" th:text="${user.name}" ></option></select><h2>3、传一个html页面代码过来</h2><span th:utext="${tohtml}" ></span></body></html>

thymeleafController.java

package com.liwangwang.springboot.controller;import com.liwangwang.springboot.entity.User;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("thymeleaf")public class thymeleafController { private ModelAndView modelAndView; @RequestMapping("list") public ModelAndView list(){ modelAndView = new ModelAndView(); //一、大略传值String modelAndView.addObject("uname","李四"); //二、传list凑集 List list = new ArrayList(); list.add(new User("李四","123",18)); list.add(new User("王五","123",19)); list.add(new User("小明","123",20)); modelAndView.addObject("userList",list); //三、传一个html页面 modelAndView.addObject("tohtml","<span style='color:red;'>这是thymeleaf的html页面</span>"); modelAndView.setViewName("thymeleaflist"); return modelAndView; }}Freemarker

学习网站 Freemarker的基本语法(https://juejin.im/post/5b598eccf265da0f4e62dfbc)

freemarkerlist.ftl

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><h2 >1、传普通值(String)</h2>${rname}<h2>2、传凑集(list)</h2><table border="1px" width="60%"> <tr> <td>角色id</td> <td>角色名字</td> </tr> <#list roleList as role > <tr> <td>${role.rid}</td> <td>${role.rname}</td> </tr> </#list></table><h2>3、包含内容</h2><#include 'common/header.ftl' ><#include 'common/global.ftl' ><h2>4、如何获取项目名</h2>${springMacroRequestContext.contextPath}<h2>5、如何定义局部变量(assign)/全局变量(global)</h2><#assign ww1> ${springMacroRequestContext.contextPath}</#assign><#global ww2> ${springMacroRequestContext.contextPath}</#global>${ww1}和${ww2}</body></html>

freemarkerController.java

package com.liwangwang.springboot.controller;import com.liwangwang.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 freemarkerController { private ModelAndView modelAndView; @RequestMapping("list") public ModelAndView list(){ modelAndView = new ModelAndView(); //一、大略传值String modelAndView.addObject("rname","李四"); //二、传list凑集 List list = new ArrayList(); list.add(new Role("1","用户")); list.add(new Role("2","会员")); list.add(new Role("3","管理员")); modelAndView.addObject("roleList",list); //三、传一个html页面 modelAndView.addObject("tohtml","<span style='color:red;'>这是thymeleaf的html页面</span>"); modelAndView.setViewName("freemarkerlist"); return modelAndView; }}后记

这个是讲是讲不完的,可以去查看官网文档和这两篇:

Thymeleaf:学习网站https://juejin.im/post/5c271fbde51d451b1c6ded58

Freemarker:学习网站 https://juejin.im/post/5b598eccf265da0f4e62dfbc

专注于技能热点大数据,人工智能,JAVA、Python、 C 、GO、Javascript等措辞最新序言技能,及业务痛点问题剖析,请关注【编程我最懂】共同互换学习。