<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks

    1、java應用程序中
        我用maven導入FreeMarker的jar包
       
        <dependency>
          <groupId>freemarker</groupId>
          <artifactId>freemarker</artifactId>
          <version>2.3.8</version>
        </dependency>

        package com.test;

    import java.io.IOException;
    import java.io.StringWriter;
    import java.util.HashMap;
    import java.util.Map;


    import freemarker.cache.ClassTemplateLoader;
    import freemarker.template.Configuration;
    import freemarker.template.DefaultObjectWrapper;
    import freemarker.template.Template;
    import freemarker.template.TemplateException;

    public class Test {

        /** *//**
         * @param args
         */
        public static void main(String[] args) {
            Configuration configuration = new Configuration();
            configuration.setObjectWrapper(new DefaultObjectWrapper());
            configuration.setTemplateLoader(new ClassTemplateLoader(Test.class, "/com/test"));
            try {
                Template template = configuration.getTemplate("temp.ftl");
                StringWriter writer = new StringWriter();
                Map<String, Object> context = new HashMap<String, Object>();
               
                context.put("message", "我的第一個FreeMarker程序");
               
                template.process(context, writer);
                System.out.println(writer.toString());
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (TemplateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

    }

    這里是用java應用程序,需要加入下面兩句(設置模板文件載入):
    方法一:
      configuration.setObjectWrapper(new DefaultObjectWrapper());
      configuration.setTemplateLoader(new ClassTemplateLoader(Test.class, "/com/test"));

    其中"/com/test" 是模板文件所在的文件夾,前面的“/”必須,這里我的模板文件和當前java類在同一路徑下,則這樣寫,如果你的模板文件在src跟目錄下,這里只需要寫“/”就可以了

    context.put("message", "我的第一個FreeMarker程序");
    是模板文件中用到的變量,map中的變量可以是javabean,也可以是對象


    方法二:
    configuration.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/templates");
    這里主要針對Servlet的時候,當然在Servlet中也可以用方法一提到的寫法
    package com.newegg.lab.freemarker.servlet;

    import java.io.IOException;
    import java.io.StringWriter;
    import java.io.Writer;
    import java.util.HashMap;
    import java.util.Map;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import freemarker.cache.ClassTemplateLoader;
    import freemarker.template.Configuration;
    import freemarker.template.DefaultObjectWrapper;
    import freemarker.template.Template;
    import freemarker.template.TemplateException;

    /** *//**
     * Servlet implementation class for Servlet: FreemarkerServlet
     *
     */
    public class FreemarkerServlet extends javax.servlet.http.HttpServlet implements
            javax.servlet.Servlet {

        private Configuration configuration;

        private Template template;
        /**//*
         * (non-Java-doc)
         *
         * @see javax.servlet.http.HttpServlet#HttpServlet()
         */
        public FreemarkerServlet() {
            super();
        }

        @Override
        public void destroy() {
            // TODO Auto-generated method stub
            configuration = null;
        }

        @Override
        public void init() throws ServletException {
            // TODO Auto-generated method stub
            configuration = new Configuration();
            configuration.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/templates");
    //        configuration.setObjectWrapper(new DefaultObjectWrapper());
    //        configuration.setTemplateLoader(new ClassTemplateLoader(FreemarkerServlet.class, "/"));
        }

        /**//*
         * (non-Java-doc)
         *
         * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request,
         *      HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            this.doPost(request, response);
        }

        /**//*
         * (non-Java-doc)
         *
         * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request,
         *      HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            Map root = new HashMap();
            root.put("message", "Hello World!的的的的");

            // Get the templat object
            Template t = configuration.getTemplate("test.ftl");

            // Prepare the HTTP response:
            // - Use the charset of template for the output
            // - Use text/html MIME-type
            response.setContentType("text/html; charset=" + t.getEncoding());
            Writer out = response.getWriter();

            // Merge the data-model and the template
            try {
                t.process(root, out);

                StringWriter stringWriter = new StringWriter();
                t.process(root, stringWriter);
                System.out.println(stringWriter.toString());
            } catch (TemplateException e) {
                throw new ServletException(
                        "Error while processing FreeMarker template", e);
            }
        }
    }


    模板文件中需要使用 ${}將java類中在Map對象中聲明的變量包圍起來就可以了

    例如模板文件:
    <pre>
    //描述信息是 : ${message}
    </pre>


    則得到的結果是:
    <pre>
    //描述信息是 : Hello World!的的的的
    </pre>

    posted on 2008-09-17 00:00 禮物 閱讀(5910) 評論(0)  編輯  收藏 所屬分類: 模板
    主站蜘蛛池模板: 亚洲成a人片77777kkkk| 99久久免费国产特黄| 亚洲av无码有乱码在线观看| 国产日本亚洲一区二区三区| 亚洲第一男人天堂| 亚洲高清国产拍精品熟女| 深夜a级毛片免费视频| 一个人免费观看www视频| a级日本高清免费看| 99精品视频在线免费观看| 国产高清免费视频| 日本免费一区二区三区最新| 亚洲日韩在线观看| 91天堂素人精品系列全集亚洲| 亚洲一区欧洲一区| 免费无码AV一区二区| 99re视频精品全部免费| 一二三四影视在线看片免费 | 亚洲色欲久久久久综合网| 亚洲人成在线影院| 亚洲AV无码一区二区三区牲色| xxxx日本在线播放免费不卡| 91香蕉国产线在线观看免费| 精品免费国产一区二区| 亚洲精品~无码抽插| 亚洲 欧洲 日韩 综合在线| 一级做a爱过程免费视| 亚洲免费二区三区| 亚洲国产婷婷综合在线精品| 久久亚洲精品成人AV| 日韩在线视频线视频免费网站| 久久九九兔免费精品6| 久久久久久A亚洲欧洲AV冫| 国产成人精品日本亚洲专区6| 91在线免费观看| 四虎影视在线永久免费看黄| 亚洲狠狠狠一区二区三区| 狠狠躁狠狠爱免费视频无码| 免费毛片在线视频| 亚洲av乱码一区二区三区香蕉| 暖暖免费日本在线中文|