Freemarker 最简单的例子程序

首先导入包,freemarker.jar
 
下载地址: 
freemarker-2.3.18.tar.gz
 
当然如果是Maven项目,可以从仓库里面下载,这里不赘述;
 
 
1、通过String来创建模版对象,并执行插值处理
 
import freemarker.template.Template; 

import java.io.OutputStreamWriter; 
import java.io.StringReader; 
import java.util.HashMap; 
import java.util.Map; 

/** 
* Freemarker最简单的例子 

* @author leizhimin 11-11-17 上午10:32 
*/
 
public class Test2 { 
        public static void main(String[] args) throws Exception{ 
                //创建一个模版对象 
                Template t = new Template(nullnew StringReader("用户名:${user};URL:    ${url};姓名:  ${name}"), null); 
                //创建插值的Map 
                Map map = new HashMap(); 
                map.put("user""lavasoft"); 
                map.put("url""http://www.baidu.com/"); 
                map.put("name""百度"); 
                //执行插值,并输出到指定的输出流中 
                t.process(map, new OutputStreamWriter(System.out)); 
        } 
}
 
执行后,控制台输出结果:
用户名:lavasoft;URL:    http://www.baidu.com/;姓名:  百度 
Process finished with exit code 0
 
 
2、通过文件来创建模版对象,并执行插值操作
 
import freemarker.template.Configuration; 
import freemarker.template.Template; 

import java.io.File; 
import java.io.OutputStreamWriter; 
import java.util.HashMap; 
import java.util.Map; 

/** 
* Freemarker最简单的例子 

* @author leizhimin 11-11-14 下午2:44 
*/
 
public class Test { 
        private Configuration cfg;            //模版配置对象 

        public void init() throws Exception { 
                //初始化FreeMarker配置 
                //创建一个Configuration实例 
                cfg = new Configuration(); 
                //设置FreeMarker的模版文件夹位置 
                cfg.setDirectoryForTemplateLoading(new File("G:\testprojects\freemarkertest\src")); 
        } 

        public void process() throws Exception { 
                //构造填充数据的Map 
                Map map = new HashMap(); 
                map.put("user""lavasoft"); 
                map.put("url""http://www.baidu.com/"); 
                map.put("name""百度"); 
                //创建模版对象 
                Template t = cfg.getTemplate("test.ftl"); 
                //在模版上执行插值操作,并输出到制定的输出流中 
                t.process(map, new OutputStreamWriter(System.out)); 
        } 

        public static void main(String[] args) throws Exception { 
                Test hf = new Test(); 
                hf.init(); 
                hf.process(); 
        } 
}
 
创建模版文件test.ftl
<html> 
<head> 
    <title>Welcome!</title> 
</head> 
<body> 
    <h1>Welcome ${user}!</h1> 
    <p>Our latest product: 
    <a href="${url}">${name}</a>
</body> 
</html> 

尊敬的用户你好: 
用户名:${user}; 
URL:    ${url}; 
姓名:  ${name}
 
执行后,控制台输出结果如下:
<html> 
<head> 
    <title>Welcome!</title> 
</head> 
<body> 
    <h1>Welcome lavasoft!</h1> 
    <p>Our latest product: 
    <a href="http://www.baidu.com/">百度</a>! 
</body> 
</html> 

尊敬的用户你好: 
用户名:lavasoft; 
URL:    http://www.baidu.com/; 
姓名:  百度 
Process finished with exit code 0

转自:http://lavasoft.blog.51cto.com/62575/716825/

原文地址:https://www.cnblogs.com/maanshancss/p/6189261.html