Java模板引擎之 FreeMarker
摘要: 在Java模板引擎 FreeMarker介绍中,我们已经对freemarker有了一定的了解,这一节是FreeMarker入门教程。下载freemarker,定义模板文件,输出到控制台和文件中
下载freemarker
http://freemarker.sourceforge.net/freemarkerdownload.html
项目文件:freemarker-2.3.19.tar.gz
中文文档:FreeMarker_Manual_zh_CN.pdf
解压后把freemarker.jar加到classpath中即可完成环境的配置
定义模板文件
我们创建两个模板文件,一个是纯文本的模板文件,另一个是HTML格式的模板文件,主要是为了说明,freemarker的模板文件可以是任何格式的
01.ftl
你好:${username}
02.ftl
Insert title here ${username}
创建freemarker工具类
这个类,主要是获取模板定义文件,并根据输入的数据输出到控制台和文件中
package com.naxsu.freemarker; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.Map; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class FreemarkerUtil { /** * 获取模板 * @param name * @return */ public Template getTemplate(String name) { try { //通过Freemaker的Configuration读取相应的ftl Configuration cfg = new Configuration(); //设定去哪里读取相应的ftl模板文件 cfg.setClassForTemplateLoading( this .getClass(), "/ftl" ); //在模板文件目录中找到名称为name的文件 Template temp = cfg.getTemplate(name); return temp; } catch (IOException e) { e.printStackTrace(); } return null ; } /** * 输出到控制台 * @param name 模板文件名 * @param root */ public void print(String name,Map try { //通过Template可以将模板文件输出到相应的流 Template temp = this .getTemplate(name); temp.process(root, new PrintWriter(System.out)); } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 输出到文件 * @param name * @param root * @param outFile */ public void fprint(String name,Map |
模拟数据,进行测试
public class TestFreemarker { FreemarkerUtil fu; Map null ; @Before public void setUp() { fu = new FreemarkerUtil(); root = new HashMap } @Test public void test01() { //1、创建数据模型 Map new HashMap //2、为数据模型添加值 root.put( "username" , "张三" ); //3、将数据模型和模板组合的数据输出到控制台 fu.print( "01.ftl" , root); fu.fprint( "02.ftl" , root, "01.html" ); } } |
下载freemarker
http://freemarker.sourceforge.net/freemarkerdownload.html
项目文件:freemarker-2.3.19.tar.gz
中文文档:FreeMarker_Manual_zh_CN.pdf
解压后把freemarker.jar加到classpath中即可完成环境的配置
定义模板文件
我们创建两个模板文件,一个是纯文本的模板文件,另一个是HTML格式的模板文件,主要是为了说明,freemarker的模板文件可以是任何格式的
01.ftl
你好:${username} 02.ftl
Insert title here ${username}
创建freemarker工具类
这个类,主要是获取模板定义文件,并根据输入的数据输出到控制台和文件中
package com.naxsu.freemarker; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.Map; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class FreemarkerUtil { /** * 获取模板 * @param name * @return */ public Template getTemplate(String name) { try { //通过Freemaker的Configuration读取相应的ftl Configuration cfg = new Configuration(); //设定去哪里读取相应的ftl模板文件 cfg.setClassForTemplateLoading( this .getClass(), "/ftl" ); //在模板文件目录中找到名称为name的文件 Template temp = cfg.getTemplate(name); return temp; } catch (IOException e) { e.printStackTrace(); } return null ; } /** * 输出到控制台 * @param name 模板文件名 * @param root */ public void print(String name,Map try { //通过Template可以将模板文件输出到相应的流 Template temp = this .getTemplate(name); temp.process(root, new PrintWriter(System.out)); } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 输出到文件 * @param name * @param root * @param outFile */ public void fprint(String name,Map |
模拟数据,进行测试
public class TestFreemarker { FreemarkerUtil fu; Map null ; @Before public void setUp() { fu = new FreemarkerUtil(); root = new HashMap } @Test public void test01() { //1、创建数据模型 Map new HashMap //2、为数据模型添加值 root.put( "username" , "张三" ); //3、将数据模型和模板组合的数据输出到控制台 fu.print( "01.ftl" , root); fu.fprint( "02.ftl" , root, "01.html" ); } } |
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
