SpringBoot使用Freemarker模板引擎渲染web视图
原创
©著作权归作者所有:来自51CTO博客作者码代码永真的原创作品,请联系作者获取转载授权,否则将追究法律责任
什么是Freemarker
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据, 而在模板之外注意于要展示什么数据
说在前面
Spring Boot官方不推荐使用jsp,因为jsp相对于一些模板引擎,性能都比较低。
Spring Boot提供了默认配置的模板引擎主要有以下几种:
• Thymeleaf
• Freemarker
• Velocity
• Groovy
• Mustache
使用模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。想要修改路径,可以在配置文件中进行修改
代码实现
1、pom.xml文件中引入freeMarker的依赖包
<!-- 引入freeMarker的依赖包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
2、application.properties文件配置
########################################################
###FREEMARKER (FreeMarkerAutoConfiguration)
########################################################
spring.freemarker.allow-request-override=false
spring.freemarker.cache=true
spring.freemarker.check-template-location=true
spring.freemarker.charset=UTF-8
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false
spring.freemarker.expose-spring-macro-helpers=false
#spring.freemarker.prefix=
#spring.freemarker.request-context-attribute=
#spring.freemarker.settings.*=
spring.freemarker.suffix=.ftl
spring.freemarker.template-loader-path=classpath:/templates/
#comma-separated list
#spring.freemarker.view-names= # whitelist of view names that can be resolved
3、index.ftl文件
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8" />
<title></title>
</head>
<body>
${name}
</body>
</html>
4、controller文件实现
@Controller
public class IndexController {
@RequestMapping(value = "index")
public String index(Model model) {
model.addAttribute("name", "zlzhaoe");
return "index";
}
}