Maven 整合FreeMarker使用

pom.xml
<!-- freemarker jar -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
</dependency>
testFreeMarker.flt
您好${name},现在在测试FreeMarker功能
FreeMarkerUtil.java
package pers.kangxu.test.util; import java.io.IOException;
import java.io.StringWriter;
import java.util.Map; import javax.servlet.http.HttpServletRequest; import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException; /**
*
* <b>
* FreeMarkerUtil
* </b>
* @author kangxu
*
*/
public class FreeMarkerUtil { private static FreeMarkerUtil instance;
private Configuration config; String templatePath = "/freeMarker/"; /**
* instance FreeMarkerUtil
* @return
*/
public static FreeMarkerUtil instance() {
if (instance == null) {
instance = new FreeMarkerUtil();
}
return instance;
} /**
* instance Configuration
* @param request
*/
private void configInstance(HttpServletRequest request) {
if (this.config == null) {
this.config = new Configuration();
this.config.setServletContextForTemplateLoading(request.getSession().getServletContext(),templatePath);
}
} /**
* 通过模板文件生成字符串
* @param request
* @param templateFileName
* @param propMap
* @return
*/
public String geneFileStr(HttpServletRequest request,String templateFileName, Map<String, Object> propMap) {
configInstance(request);
StringWriter out = new StringWriter();
Template tmp;
try {
tmp = this.config.getTemplate(templateFileName,"UTF-8");
tmp.setEncoding("UTF-8");
tmp.process(propMap, out);
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
}
return out.getBuffer().toString();
} }
TestController.java
package pers.kangxu.test.controller; import java.util.HashMap;
import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import pers.kangxu.test.util.FreeMarkerUtil; @Controller
@RequestMapping("/test-default")
public class TestController { @RequestMapping(value="test-freemarker",produces = "application/json; charset=utf-8")
@ResponseBody
public String testFreeMarker(HttpServletRequest request){ Map<String,Object> map = new HashMap<String,Object>();
map.put("name", "【我是名字】"); return FreeMarkerUtil.instance().geneFileStr(request, "testFreeMarker.flt", map);
}
}
运行结果

Maven 整合FreeMarker使用的更多相关文章
- SpringBoot整合freemarker 引用基础
原 ElasticSearch学习笔记Ⅲ - SpringBoot整合ES 新建一个SpringBoot项目.添加es的maven坐标如下: <dependency> <groupI ...
- springboot学习入门简易版四---springboot2.0静态资源访问及整合freemarker视图层
2.4.4 SpringBoot静态资源访问(9) Springboot默认提供静态资源目录位置需放在classpath下,目录名需要符合如下规则 /static /public /resourc ...
- 07.整合jsp、整合freemarker、整合thymeleaf
整合jsp pom.xml部分内容 <packaging>war</packaging> </dependencies> <dependency> &l ...
- java Spring整合Freemarker的详细步骤
java Spring整合Freemarker的详细步骤 作者: 字体:[增加 减小] 类型:转载 时间:2013-11-14我要评论 本文对Spring整合Freemarker步骤做了详细的说明,按 ...
- 【SpringBoot】09.SpringBoot整合Freemarker
SpringBoot整合Freemarker 1.修改pom文件,添加坐标freemarker启动器坐标 <project xmlns="http://maven.apache.org ...
- 【Java EE 学习 82 下】【MAVEN整合Eclipse】【MAVEN的一些高级概念】
一.MAVEN整合Eclipse MAVEN是非常优秀,但是总是要开命令行敲命令是比较不爽的,我们已经习惯了使用IDE,所以还有一种将MAVEN整合到Eclipse的方法. 详情查看:http://w ...
- Maven 整合 spring profile实现多环境自动切换
Maven 整合 spring profile实现多环境自动切换 时间:2014-03-19 15:32来源:Internet 作者:Internet 点击:525次 profile主要用在项目多环境 ...
- [saiku] 源码整合[maven整合]
saiku源码的整合分为[普通web项目整合]和[maven整合]两种 本节主要是讲解如何整合为maven项目 转载自:http://blog.csdn.net/gsying1474/article/ ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(六)maven整合SSM
写在前面的话 承接前文<Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven>,本篇所讲述的是如何使用maven与原ssm项目整合,使得一个普 ...
随机推荐
- NiceMark——我的Markdown编辑器
NiceMark--我的Markdown编辑器 闲来无事,写了一个Markdown编辑器.基于electron,完全采用Web前段技术(Html,css,JavaScript)实现.代码已托管在Git ...
- Microsoft Loves Linux
微软新任CEO纳德拉提出的“Microsoft Loves Linux”,并且微软宣布.NET框架的开源,近期Microsoft不但宣布了Linux平台的SQL Server,还宣布了Microsof ...
- 使用etree.HTML的编码问题
title: 使用etree.HTML的编码问题 date: 2015-10-07 17:56:47 categories: [Python] tags: [Python, lxml, Xpath] ...
- ASP.NET Core: You must add a reference to assembly mscorlib, version=4.0.0.0
ASP.NET Core 引用外部程序包的时候,有时会出现下面的错误: The type 'Object' is defined in an assembly that is not referenc ...
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
- WPF中Grid实现网格,表格样式通用类
/// <summary> /// 给Grid添加边框线 /// </summary> /// <param name="grid"></ ...
- 原生JS实现-星级评分系统
今天我又写了个很酷的实例:星级评分系统(可自定义星星个数.显示信息) sufuStar.star();使用默认值5个星星,默认信息 var msg = [........]; sufuStar.sta ...
- join Linq
List<Publisher> Publishers = new List<Publisher>(); Publisher publish1 = new Publisher() ...
- oracle SEQUENCE 创建, 修改,删除
oracle创建序列化: CREATE SEQUENCE seq_itv_collection INCREMENT BY 1 -- 每次加几个 STA ...
- [DS] 标记字段
标记字段 代码中有时候有这种需求:需要一个公共访问的标记字段,以下称为标记字段. 下面是案例: 一个订单详情页面,如果页面在显示中,程序中其它地方需要访问这个"正在查看中"的订单信 ...