/**
* FreeMarker 辅助类
* @author Rubekid
*
*/
public class FreeMarkerHelper { /**
* 模板文件存放目录
*/
private static final String TEMPLATE_PATH = "/templates/freemarker/"; /**
* 获取模板内容
* @param tpl
* @param rootMap
* @return
* @throws IOException
* @throws TemplateException
*/
public static String fetch(String tpl, Object rootMap) throws IOException, TemplateException{
Template template = getTemplate(tpl);
Writer out= new StringWriter();
template.process(rootMap, out);
String result = out.toString();
out.flush();
return result;
} /**
* 输出显示
* @param tpl
* @param rootMap
* @param out
* @throws IOException
* @throws TemplateException
*/
public static void display(String tpl, Object rootMap, Writer out) throws IOException, TemplateException{
Template template = getTemplate(tpl);
template.process(rootMap, out);
out.flush();
} /**
* 获取模板
* @param tpl
* @return
* @throws IOException
*/
private static Template getTemplate(String tpl) throws IOException{
Configuration config = new Configuration();
String path = WebUtils.getContextPath() + TEMPLATE_PATH;
String name = tpl;
int pos = tpl.lastIndexOf("/");
if(pos > -1){
path += tpl.substring( 0, pos+1 );
name += tpl.substring( pos+1 );
} config.setDirectoryForTemplateLoading(new File(path));
config.setObjectWrapper(new DefaultObjectWrapper());
return config.getTemplate(name ,"utf-8");
} /**
* 获取模板(通过字符串)
* @param source
* @throws IOException
*/
private static Template getTemplate(String name, String source) throws IOException{
Configuration config = new Configuration();
StringTemplateLoader loader = new StringTemplateLoader();
loader.putTemplate(name, source);
config.setTemplateLoader(loader);
return config.getTemplate(name, "utf-8");
}

FreeMarker辅助的更多相关文章

  1. 第一个spring、springmvc、mybatis、freemarker项目小知识(一)

    1.持久层开发(Mybatis)    1.1 添加,非空字段必须给值,不是非空加判断,有值添加无值不添    1.2 删除,注意外键关系的级联删除.(事务传播行为)    1.3 更新,每个字段单独 ...

  2. SpringMVC整合FreeMarker实例

    FreeMarker作为模板引擎,是比较常用的. FreeMarker官方文档地址为:https://freemarker.apache.org/ 现在浏览器或者翻译工具这么多,对于英文方面,我想大多 ...

  3. spring.jar是包含有完整发布的单个jar 包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。

    Spring jar包的描述:针对3.2.2以上版本 org.springframework spring-aop ——Spring的面向切面编程,提供AOP(面向切面编程)实现 org.spring ...

  4. 6.DNS公司PC访问外网的设置 + 主DNS服务器和辅助DNS服务器的配置

    网站部署之~Windows Server | 本地部署 http://www.cnblogs.com/dunitian/p/4822808.html#iis DNS服务器部署不清楚的可以看上一篇:ht ...

  5. spring源码分析之freemarker整合

    FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页.电子邮件.配置文件.源代码等)的通用工具. 它不是面向最终用户的,而是一个Java类库,是一款程 ...

  6. Maven 整合FreeMarker使用

    pom.xml <!-- freemarker jar --> <dependency> <groupId>org.freemarker</groupId&g ...

  7. JAVA FreeMarker工具类

    FreeMarkerUtil.java package pers.kangxu.datautils.utils; import java.io.File; import java.io.StringW ...

  8. FreeMarker:怎么使用

    第一个FreeMarker程序 1. 建立一个普通的java项目:testFreeMarker 2. 引入freemarker.jar包 3. 在项目目录下建立模板目录:templates 4. 在t ...

  9. FreeMarker的基础语法

    FreeMarker语言 FreeMarker语言概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写. FreeMarker被设计用来生成HTML Web ...

随机推荐

  1. PHP 函数的引用传递

    $a = "nowamagic";$b =& $a;echo $b.$a; 这意味着 $a 和 $b 指向了同一个变量.同一个变量内容有不同的变量名,引用就是这么个回事. ...

  2. CSS 解决<td>里面内容太多把表格弄变形的原因,设置 自动换行。

    1 < style="word-break:break-all"> 例如div宽200px,它的内容就会到200px自动换行,如果该行末端有个英文单词很长(congra ...

  3. 搭建Struts2开发环境

    搭建Struts2环境时,我们一般需要做以下几个步骤的工作: 1.创建javaweb工程 2.找到开发Struts2应用需要使用到的jar文件 3.创建jsp文件 4.创建action文件 5.编写S ...

  4. QT5-控件-QLineEdit-文本输入控件,用来输入密码什么的还不错,可以和Linux登录一样不移动光标哦

    #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QLineEdit> #i ...

  5. Linux 挂载iso,并设置为源

    ubuntu在安装lsb-core时需要从 /media/cdrom中查找源,无奈我机器的光驱被我换为硬盘了,无法安装光盘,只有在网上下载的iso文件在硬盘中,所以把iso挂载到它要查找位置 执行: ...

  6. Android基本组件-Activity

    什么是Activity 在Android程序中,每个Activity继承自android.app.Activity, 有一个与之对应的xml布局文件, 一个界面对应一个Activity, 每个Acti ...

  7. innerHTML在IE中报错

      问题:开发过程中,用到循环往table里面插入tr标签,然后tr里又循环插入td,在其它浏览器都没问题,但是在IE9及以下版本中都报错:   google上得到答案:由于我之前不知道错误的原因,在 ...

  8. 转:pthread_create()

    http://blog.csdn.net/youbang321/article/details/7815707 原型:int  pthread_create((pthread_t  *thread,  ...

  9. 转: ubuntu配置NFS,挂载开发板

    ====================================== 命令: 1. $sudo apt-get install nfs-kernel-server           (安装N ...

  10. CreateFile FileSeek FileRead 直接读取数据

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...