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

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

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

    我的漫漫程序之旅

    專注于JavaWeb開(kāi)發(fā)
    隨筆 - 39, 文章 - 310, 評(píng)論 - 411, 引用 - 0
    數(shù)據(jù)加載中……

    FreeMarker使用小記(HelloWorld)

    FreeMarker是開(kāi)源的模板框架。對(duì)于它的介紹網(wǎng)上已經(jīng)很多了。詳情可參考
    主頁(yè):http://www.freemarker.org/

      現(xiàn)在我們就開(kāi)始我們的FreeMarker版的Hello World之旅吧。

    1.去這里下載 最新的FreeMarker.我下載的是 Download freemarker-2.3.13

    2.解壓你下載的freemarker-2.3.13。

    3.新建一web工程。我是MyEclipse下做的。把freemarker-2.3.13/lib目錄下的
    所有jar文件都復(fù)制到你建的web工程的lib目錄下。

    4.在WEB-INF目錄下建一文件夾templates,然后在這個(gè)文件夾里面新建一個(gè)模板文件test.ftl
    <html>
    <head>
      
    <title>你的自定義模板</title>
    </head>
        
    <body>
          ${message}
          :
    <font color=red>${username}</font>
        
    </body>
    </html>
    5.建一個(gè)HelloServlet:
    package com;

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

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

    import freemarker.template.Configuration;
    import freemarker.template.Template;
    import freemarker.template.TemplateException;

    @SuppressWarnings(
    "serial")
    public class HelloServlet extends HttpServlet
    {
        
    private Configuration cfg = null;

        @Override
        
    public void init() throws ServletException
        {
            
    // FreeMarker程序入口點(diǎn)
            cfg = new Configuration();
            
    // 初始化Servlet上下文(第二參數(shù)為ServletContext的相對(duì)路徑,null代表當(dāng)前網(wǎng)站根路徑,相對(duì)路徑)
            cfg.setServletContextForTemplateLoading(this.getServletContext(), null);
            
    /***********************************************************************
             * *cfg.setServletContextForTemplateLoading(this.getServletContext(),
             * "WEB-INF"); 如果設(shè)置成WEB-INF相應(yīng)的獲模板時(shí)需要改成Template t =
             * cfg.getTemplate("/templates/test.ftl");
             *********************************************************************
    */
        }

        @SuppressWarnings(
    "unchecked")
        @Override
        
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                
    throws ServletException, IOException
        {
            
    // 模板文件會(huì)根據(jù)key,讀取value
            Map root = new HashMap();
            root.put(
    "message""您好!");
            root.put(
    "username""編程愛(ài)好者");
            Template t 
    = cfg.getTemplate("WEB-INF/templates/test.ftl");
            resp.setCharacterEncoding(
    "utf-8");
            PrintWriter out 
    = resp.getWriter();
            
    try
            {
                t.process(root, out);
            } 
    catch (TemplateException e)
            {
                e.printStackTrace();
            }
        }

        @Override
        
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                
    throws ServletException, IOException
        {
            
    this.doPost(req, resp);
        }

    }
    6.web.xml中的相應(yīng)配置:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    >
        
    <servlet>
            
    <servlet-name>testServlet</servlet-name>
            
    <servlet-class>com.HelloServlet</servlet-class>
        
    </servlet>

        
    <servlet-mapping>
            
    <servlet-name>testServlet</servlet-name>
            
    <url-pattern>/hello</url-pattern>
        
    </servlet-mapping>

        
    <welcome-file-list>
            
    <welcome-file>index.jsp</welcome-file>
        
    </welcome-file-list>
    </web-app>

    7.啟動(dòng)瀏覽器訪問(wèn):http://localhost:8888/freemarker/hello
    您會(huì)看到:
    您好! :編程愛(ài)好者

    好了,你的第一個(gè)Freemarker版的HelloWorld已經(jīng)成功完成了。


    posted on 2008-06-03 15:19 々上善若水々 閱讀(7022) 評(píng)論(3)  編輯  收藏 所屬分類: opensource

    評(píng)論

    # re: FreeMarker使用小記(HelloWorld)  回復(fù)  更多評(píng)論   

    頁(yè)面什么都沒(méi)有顯示,一切按你上面做的。獲取不到test.ftl
    里面的值,請(qǐng)問(wèn)有完整的例子嗎?發(fā)我一份email:liufei@gaorne.com 謝謝!
    2008-12-12 17:19 | freeMarker

    # re: FreeMarker使用小記(HelloWorld)  回復(fù)  更多評(píng)論   

    不好意思啊!!test.ftl 內(nèi)容寫的有問(wèn)題,所以才。。我想知道怎么獲取圖片路徑,并發(fā)送,現(xiàn)在郵件里面顯示不了圖片 非常感謝
    2008-12-12 17:39 | freeMarker

    # re: FreeMarker使用小記(HelloWorld)  回復(fù)  更多評(píng)論   

    Template t = cfg.getTemplate("WEB-INF/templates/test.ftl","utf-8");后面的utf-8不能少,少了就不顯示了
    2012-02-16 11:42 | HelloWan
    主站蜘蛛池模板: 亚洲综合激情五月色一区| 在线v片免费观看视频| 毛片在线免费视频| 久久久久亚洲av无码专区导航| 亚洲阿v天堂在线2017免费| 免费在线观看你懂的| 亚洲a无码综合a国产av中文| 成年性生交大片免费看| 中日韩亚洲人成无码网站| 97无码免费人妻超级碰碰夜夜| 国产精品久久久久久亚洲小说 | 最近2022中文字幕免费视频| 亚洲四虎永久在线播放| 免费视频成人片在线观看| 日产亚洲一区二区三区| 国产大片91精品免费看3| 一区二区免费国产在线观看| 亚洲熟女少妇一区二区| 日本免费大黄在线观看| 国产一区二区三区亚洲综合| 亚洲综合一区二区国产精品| 免费大黄网站在线观| 亚洲精品国产免费| 亚洲无码一区二区三区| 亚洲国产AV无码专区亚洲AV| 3d成人免费动漫在线观看| 免费大片av手机看片高清| 亚洲国产一成人久久精品| 69国产精品视频免费| 一个人看的在线免费视频| 久久久久亚洲精品天堂| 久久亚洲高清综合| 亚洲视频在线观看免费视频| 大片免费观看92在线视频线视频| 亚洲avav天堂av在线网爱情| 亚洲国产香蕉人人爽成AV片久久| 毛片在线播放免费观看| 国产日本亚洲一区二区三区| 亚洲JIZZJIZZ中国少妇中文| 免费A级毛片无码A∨| 两性色午夜免费视频|