<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 禮物 閱讀(5917) 評論(0)  編輯  收藏 所屬分類: 模板
    主站蜘蛛池模板: 日韩激情无码免费毛片| 国产精品99久久免费观看| 好男人看视频免费2019中文| 亚洲精品国产电影午夜| 中文字幕乱码免费视频| 亚洲妇女熟BBW| 好爽…又高潮了毛片免费看 | 91免费国产精品| 亚洲一区精品中文字幕| 7m凹凸精品分类大全免费| 亚洲黄色免费网站| 午夜亚洲www湿好大| 亚洲免费观看在线视频| 亚洲国产亚洲综合在线尤物| 欧洲黑大粗无码免费| 激情婷婷成人亚洲综合| 亚洲国产精品毛片av不卡在线 | 一级做α爱过程免费视频| 亚洲人成色777777在线观看| 欧洲人免费视频网站在线| 亚洲精品影院久久久久久| 久久综合AV免费观看| 春暖花开亚洲性无区一区二区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 精品乱子伦一区二区三区高清免费播放| 国产成人精品曰本亚洲79ren| 成人精品一区二区三区不卡免费看| 国产亚洲一区二区三区在线观看| 人成午夜免费视频在线观看| 国产精品久久香蕉免费播放| 精品在线观看免费| 亚洲另类激情综合偷自拍图| 精品成在人线AV无码免费看| 亚洲AV无码一区二区三区鸳鸯影院| 区久久AAA片69亚洲| www视频在线观看免费| 亚洲AⅤ男人的天堂在线观看| 国产∨亚洲V天堂无码久久久| 日本妇人成熟免费中文字幕| 一级做受视频免费是看美女 | 毛片免费全部播放无码|