springboot中Thymeleaf和Freemarker模板引擎的区别
⽬录
前⾔
这两个都是属于模板引擎,但是各有各的好处,
enn,在市⾯上⽐较多的也就是jsp、freemarker、velocity、thymeleaf等页⾯⽅案。
Thymeleaf和Freemarker的区别
FreeMarker是⼀个⽤Java语⾔编写的模板引擎,它基于模板来⽣成⽂本输出。FreeMarker与Web容器⽆关,即在Web运⾏时,它并不知道Servlet或HTTP。它不仅可以⽤作表现层的实现技术,⽽且还可以⽤于⽣成XML,JSP或Java 等。
⽬前企业中:主要⽤Freemarker做静态页⾯或是页⾯展⽰
优点:
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还可以作为模板引擎框架。springmvc常用标签
thymeleaf优点:静态html嵌⼊标签属性,浏览器可以直接打开模板⽂件,便于前后端联调。
配置⽂件
<!--thymeleaf模块引擎-->
<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>
server:
port:81
servlet:
context-path:/sss
buser:
name: ls
pwd:123
age:19
spring:
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
⼤量的数据我暂时不会去实验,如今只有⼀⼩部分:参考:
thymeleaflist.html
<!DOCTYPE html>
<html th="">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2 >1、传普通值(String)</h2>
<span text="${uname}"></span>
<h2>2、传集合(list)</h2>
<table>
<tr>
<td>⽤户名字</td>
<td>⽤户密码</td>
<td>⽤户年龄</td>
</tr>
<tr each="u : ${userList}">
<td text="${u.name}"></td>
<td text="${u.pwd}"></td>
<td text="${u.age}"></td>
</tr>
</table>
<select>
<option each="user :${userList}"value="${user.name}"text="${user.name}"></option> </select>
<h2>3、传⼀个html页⾯代码过来</h2>
<span utext="${tohtml}"></span>
</body>
</html>
thymeleafController.java
package com.ller;
import com.ity.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;
/**
* @authorliwangwang
* @site www.liwangwang
* @company xxx公司
* @create 2019-11-08 11:29
*/
@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
学习⽹站
freemarkerlist.ftl
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论