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

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

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

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學(xué);靜其心,可悟天下之理;恒其心,可成天下之業(yè)。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評(píng)論 :: 0 Trackbacks

    1、java應(yīng)用程序中
        我用maven導(dǎo)入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", "我的第一個(gè)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應(yīng)用程序,需要加入下面兩句(設(shè)置模板文件載入):
    方法一:
      configuration.setObjectWrapper(new DefaultObjectWrapper());
      configuration.setTemplateLoader(new ClassTemplateLoader(Test.class, "/com/test"));

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

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


    方法二:
    configuration.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/templates");
    這里主要針對(duì)Servlet的時(shí)候,當(dāng)然在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對(duì)象中聲明的變量包圍起來就可以了

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


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

    posted on 2008-09-17 00:00 禮物 閱讀(5917) 評(píng)論(0)  編輯  收藏 所屬分類: 模板
    主站蜘蛛池模板: 日韩中文无码有码免费视频 | 亚洲人成电影在线天堂| 亚洲国产成人一区二区三区| 亚洲AV无码久久精品狠狠爱浪潮| 久久精品国产亚洲AV大全| 亚洲国产精品专区| 久久久亚洲精华液精华液精华液 | 国产亚洲欧美在线观看| 一级毛片大全免费播放下载| 一个人看的www免费视频在线观看 一个人免费视频观看在线www | 日本系列1页亚洲系列| 成人免费一区二区三区| 最近中文字幕大全免费视频| 蜜臀91精品国产免费观看| 亚洲伊人成无码综合网| 亚洲精品免费在线观看| 亚洲精品无码中文久久字幕| 一区二区三区免费视频观看| 免费国产黄网站在线观看可以下载 | 91免费国产精品| 日韩免费毛片视频| 亚洲理论电影在线观看| 亚洲一区二区三区不卡在线播放| 国产亚洲蜜芽精品久久| 免费av一区二区三区| 毛片免费在线观看网址| 亚洲综合伊人久久综合| 亚洲一级毛片免费看| 人碰人碰人成人免费视频| 亚洲免费视频观看| 亚洲av高清在线观看一区二区| 亚洲人成网址在线观看| 国产成人亚洲精品播放器下载| 无码免费一区二区三区免费播放| 女人18毛片特级一级免费视频 | 伊人久久五月丁香综合中文亚洲| 国产区在线免费观看| 成年男女男精品免费视频网站| 亚洲日韩精品一区二区三区| 亚洲乱码一区二区三区国产精品| 国产在线精品观看免费观看|