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

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

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

    我的漫漫程序之旅

    專注于JavaWeb開發
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數據加載中……

    FreeMarker使用小記(HelloWorld)

    FreeMarker是開源的模板框架。對于它的介紹網上已經很多了。詳情可參考
    主頁:http://www.freemarker.org/

      現在我們就開始我們的FreeMarker版的Hello World之旅吧。

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

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

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

    4.在WEB-INF目錄下建一文件夾templates,然后在這個文件夾里面新建一個模板文件test.ftl
    <html>
    <head>
      
    <title>你的自定義模板</title>
    </head>
        
    <body>
          ${message}
          :
    <font color=red>${username}</font>
        
    </body>
    </html>
    5.建一個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程序入口點
            cfg = new Configuration();
            
    // 初始化Servlet上下文(第二參數為ServletContext的相對路徑,null代表當前網站根路徑,相對路徑)
            cfg.setServletContextForTemplateLoading(this.getServletContext(), null);
            
    /***********************************************************************
             * *cfg.setServletContextForTemplateLoading(this.getServletContext(),
             * "WEB-INF"); 如果設置成WEB-INF相應的獲模板時需要改成Template t =
             * cfg.getTemplate("/templates/test.ftl");
             *********************************************************************
    */
        }

        @SuppressWarnings(
    "unchecked")
        @Override
        
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                
    throws ServletException, IOException
        {
            
    // 模板文件會根據key,讀取value
            Map root = new HashMap();
            root.put(
    "message""您好!");
            root.put(
    "username""編程愛好者");
            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中的相應配置:
    <?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.啟動瀏覽器訪問:http://localhost:8888/freemarker/hello
    您會看到:
    您好! :編程愛好者

    好了,你的第一個Freemarker版的HelloWorld已經成功完成了。


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

    評論

    # re: FreeMarker使用小記(HelloWorld)  回復  更多評論   

    頁面什么都沒有顯示,一切按你上面做的。獲取不到test.ftl
    里面的值,請問有完整的例子嗎?發我一份email:liufei@gaorne.com 謝謝!
    2008-12-12 17:19 | freeMarker

    # re: FreeMarker使用小記(HelloWorld)  回復  更多評論   

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

    # re: FreeMarker使用小記(HelloWorld)  回復  更多評論   

    Template t = cfg.getTemplate("WEB-INF/templates/test.ftl","utf-8");后面的utf-8不能少,少了就不顯示了
    2012-02-16 11:42 | HelloWan
    主站蜘蛛池模板: 国产亚洲精品精华液| 免费观看的av毛片的网站| 亚洲中文字幕视频国产| 亚洲精品GV天堂无码男同| 免费人成视频在线| 中文字幕无码精品亚洲资源网久久| 2022久久国产精品免费热麻豆| 久久久久亚洲AV无码网站| 久久99青青精品免费观看| 内射少妇36P亚洲区| 最近最新高清免费中文字幕| 亚洲精品在线免费观看视频| 国产成人精品免费视频动漫 | 成人午夜18免费看| 亚洲欧美日韩中文二区| 国产真人无遮挡作爱免费视频 | 香蕉97超级碰碰碰免费公| 亚洲jizzjizz在线播放久| 成人毛片免费观看视频大全| 亚洲精品无码久久| 亚洲性日韩精品国产一区二区| 中国一级毛片视频免费看| 亚洲黄色网址在线观看| 成人au免费视频影院| 羞羞漫画登录页面免费| 欧洲人成在线免费| 亚洲午夜精品在线| 四虎影视永久免费观看| 国产成人无码区免费网站| 亚洲制服在线观看| 又粗又大又长又爽免费视频| 99精品全国免费观看视频..| 亚洲免费在线视频播放| 亚洲精品无码久久不卡| 91制片厂制作传媒免费版樱花| 亚洲精品无码久久久久秋霞| 亚洲精品高清国产一线久久| 久久精品a一国产成人免费网站 | 免费A级毛片无码无遮挡内射| 美女的胸又黄又www网站免费| 亚洲免费视频网站|