10°

springboot中单独使用freemarker测试代码

建一个非web的项目,我的项目是springboot+mina+freemaker,在pom.xml中添加

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

1)application.properties中:

## Freemarker 配置
##模版存放路径(默认为 classpath:/templates/)
spring.freemarker.template-loader-path=classpath:/templates/
##是否生成缓存,生成环境建议开启(默认为true)
spring.freemarker.cache=false
##编码
spring.freemarker.charset=UTF-8
spring.freemarker.check-template-location=true
##content-type类型(默认为test/html)
spring.freemarker.content-type=text/html
## 设定所有request的属性在merge到模板的时候,是否要都添加到model中(默认为false)
spring.freemarker.expose-request-attributes=false
##设定所有HttpSession的属性在merge到模板的时候,是否要都添加到model中.(默认为false)
spring.freemarker.expose-session-attributes=false 
##RequestContext属性的名称(默认为-)
spring.freemarker.request-context-attribute=request
##模板后缀(默认为.ftl)
spring.freemarker.suffix=.html

2)templates目录中放一个freemarker.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>
    Hello,${bcid}
</div>
</body>
</html>

3)主程序中想要输出的时候:

InputStreamReader inputStreamReader = new InputStreamReader(Resource.class.getResourceAsStream("/templates/freemarker.html"));
       Configuration configuration = new Configuration(Configuration.getVersion());
   Template template = new Template("mytemplate",inputStreamReader,configuration);
   Map&lt;String,String&gt; map = new HashMap&lt;&gt;();
   map.put("bcid","123456");
   template.process(map,new PrintWriter(System.out));</code></pre> 

最终输出在屏幕上的效果如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>
    Hello,123456
</div>
</body>
</html>

本文由【whoisliang】发布于开源中国,原文链接:https://my.oschina.net/u/2963604/blog/3160015

全部评论: 0

    我有话说: