Spring MVC提供动态HTML内容。Spring MVC支持各种各样的模板技术,包括Velocity, FreeMarkerJSPs等。很多其他的模板引擎也提供它们自己的Spring MVC集成。

Spring BootFreeMarkerGroovyThymeleafVelocity模板引擎提供自动配置支持,本文讲述一下在Spring Boot中如何使用模板引擎Freemarker

FreeMarker是一款模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

引入spring-boot-starter-freemarker依赖,在pom.xml配置文件中增加配置如下(基于之前章节“Spring Boot 构建框架”中的pom.xml文件):

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

应用案例

在spring boot中application.properties属性文件为freemarker提供了一些常用的配置,具体信息如下(根据自身需要进行修改配置):

########################################################
###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

编写一个简单的hello.ftl模板,此文件的存放路径为src/main/resources/templates下,其hello.ftl文件的内容如下:

<html>   
<body>   
    欢迎收藏 ${name} to freemarker!  
</body>   
</html>

新建Controller控制类,访问hello.ftl模板文件,具体代码如下:

import java.util.Map;  
   
import org.springframework.stereotype.Controller;  
import org.springframework.web.bind.annotation.RequestMapping;  
     
@Controller  
public class HelloController {  
     
    @RequestMapping("/hello")  
    public String hello(Map<String,Object> map){  
       map.put("name", "素文宅博客");  
       return "hello";  
    }  
}

执行如下测试代码,进行启动操作(原文件中存在):

import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
   
@SpringBootApplication  
public class App {  
    publicstaticvoid main(String[] args) {  
       SpringApplication.run(App.class, args);  
    }  
}

访问http://127.0.0.1:8080/demo/hello(demo替换为项目名称),浏览器中显示如下信息:

欢迎收藏 素文宅博客 to freemarker!

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

分享:

支付宝

微信