spring boot中使用FreeMarker模板
2018-01-08 14:21
471 查看
创建freemarker模板
在src/java/resources目录下创建templates文件夹并创建demo.ftl。
模板默认是从【classpath:/templates/】这个位置查找的。
添加依赖:
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.27-incubating</version>
</dependency>
添加配置(如果必要,我下面的demo代码是没有),在application.properties:
spring.freemarker.allow-request-override=false
spring.freemarker.cache=false
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.suffix=.ftl
spring.freemarker.template-loader-path=classpath:/templates/
编写controller类:
@Controller
public class FreemarkerController {
@Autowired
Configuration configuration;
/**
* 创建freemarker模板
* 在src/java/resources目录下创建templates文件夹并创建demo.ftl。
* 模板默认是从【classpath:/templates/】这个位置查找的。
* @param map
* @return
*/
@RequestMapping("/demo2")
public String demo(Map<String, Object> map) {
map.put("descrip", "It's a springboot integrate freemarker's demo!!!!");
return "demo";
}
/**
* 测试FreeMarker魔板2
* @throws IOException
* @throws ParseException
* @throws MalformedTemplateNameException
* @throws Exception
*/
@RequestMapping("/test2")
public void demo2(HttpServletRequest request, HttpServletResponse response) throws Exception{
Map<String, Object> model = new HashMap<String, Object>();
model.put("time", new Date());
model.put("message", "这是测试的内容。。。");
model.put("toUserName", "张三");
model.put("fromUserName", "老许");
Template t = configuration.getTemplate("welcome.ftl"); // freeMarker template
String content = FreeMarkerTemplateUtils.processTemplateIntoString(t, model);
response.setContentType("text/html; charset=" + t.getEncoding());
Writer out = response.getWriter();
//合并数据模型和模版,并将结果输出到out中
t.process(model, out);
System.out.println(content);
//return content;
}
}
魔板路径以及代码: src/main/resource/templates/demo.ftl
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
请看说明:${descrip} <br />
haahaaaa
</body>
</html>
src/main/resource/templates/welcome.ftl
<!DOCTYPE html>
<html>
<body>
<h4>亲爱的${toUserName},你好!</h4>
<p style="color:blue;"> ${message}</p>
祝:开心!
</br>
${fromUserName}
</br>
${time?date}
</body>
</html>
到此为止, 已经完成, 运行此项目.
访问:
http://localhost:8083/test2
结果是:
访问:
http://localhost:8083/demo2
结果:
在src/java/resources目录下创建templates文件夹并创建demo.ftl。
模板默认是从【classpath:/templates/】这个位置查找的。
添加依赖:
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.27-incubating</version>
</dependency>
添加配置(如果必要,我下面的demo代码是没有),在application.properties:
spring.freemarker.allow-request-override=false
spring.freemarker.cache=false
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.suffix=.ftl
spring.freemarker.template-loader-path=classpath:/templates/
编写controller类:
@Controller
public class FreemarkerController {
@Autowired
Configuration configuration;
/**
* 创建freemarker模板
* 在src/java/resources目录下创建templates文件夹并创建demo.ftl。
* 模板默认是从【classpath:/templates/】这个位置查找的。
* @param map
* @return
*/
@RequestMapping("/demo2")
public String demo(Map<String, Object> map) {
map.put("descrip", "It's a springboot integrate freemarker's demo!!!!");
return "demo";
}
/**
* 测试FreeMarker魔板2
* @throws IOException
* @throws ParseException
* @throws MalformedTemplateNameException
* @throws Exception
*/
@RequestMapping("/test2")
public void demo2(HttpServletRequest request, HttpServletResponse response) throws Exception{
Map<String, Object> model = new HashMap<String, Object>();
model.put("time", new Date());
model.put("message", "这是测试的内容。。。");
model.put("toUserName", "张三");
model.put("fromUserName", "老许");
Template t = configuration.getTemplate("welcome.ftl"); // freeMarker template
String content = FreeMarkerTemplateUtils.processTemplateIntoString(t, model);
response.setContentType("text/html; charset=" + t.getEncoding());
Writer out = response.getWriter();
//合并数据模型和模版,并将结果输出到out中
t.process(model, out);
System.out.println(content);
//return content;
}
}
魔板路径以及代码: src/main/resource/templates/demo.ftl
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
请看说明:${descrip} <br />
haahaaaa
</body>
</html>
src/main/resource/templates/welcome.ftl
<!DOCTYPE html>
<html>
<body>
<h4>亲爱的${toUserName},你好!</h4>
<p style="color:blue;"> ${message}</p>
祝:开心!
</br>
${fromUserName}
</br>
${time?date}
</body>
</html>
到此为止, 已经完成, 运行此项目.
访问:
http://localhost:8083/test2
结果是:
访问:
http://localhost:8083/demo2
结果:
相关文章推荐
- (18)使用模板(thymeleaf-freemarker)【从零开始学Spring Boot】
- Spring Boot使用模板freemarker的示例代码
- spring boot 使用velocity、freeMarker模板创建html页面返回给前端
- (18)使用模板(thymeleaf-freemarker)【从零开始学Spring Boot】
- 一头扎进springboot之使用Freemarker模板引擎渲染web视图
- 93.Spring Boot使用模板freemarker【从零开始学Spring Boot】
- spring boot 使用velocity、freeMarker模板创建html页面返回给前端
- springboot-10-前端页面整合, thymeleaf, freemarker, jsp 模板使用
- SpringBoot-07引擎模板thymeleaf和freemarker的使用
- 170703、springboot编程之模板使用(thymeleaf、freemarker)
- Spring boot 使用freemarker模板
- (9) spring boot使用freemarker模板引擎
- Spring Boot 与 Kotlin使用Freemarker模板引擎渲染web视图
- Spring boot 使用freemarker模板
- (18)使用模板(thymeleaf-freemarker)【从零开始学Spring Boot】
- Spring Boot使用模板freemarker【从零开始学Spring Boot(转)
- Spring Boot整合模板引擎freemarker以及servlet
- Spring Boot 系列 - web开发 Thymeleaf、FreeMarker模板引擎
- SpringBoot不使用模板引擎直接返回html
- 012-Spring Boot web【一】创建、请求、使用jsp、freemarker,tomcat、jetty