• 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/

  • 相关阅读:
    OpenCv 人脸识别 基础
    C++ 0x std::async 的应用
    C++ 0x 使用condition_variable 与 Mutex 同步两个线程
    Unity C# 调用 C++ DLL 并在 DLL 中调用 C# 的回调函数
    C++ 11 中的 Lambda 表达式的使用
    DirectShow 制作在Unity3D中可以设置进度的视频播放插件
    Async/Await 如何通过同步的方式实现异步
    React Native 开源项目汇总
    ES6 Promise的理解与简单实现(链接)
    深刻理解BFC(链接)
  • 原文地址:https://www.cnblogs.com/maanshancss/p/6189261.html
Copyright © 2020-2023  润新知