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

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

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

    jar包地址:http://www.freemarker.org/freemarkerdownload.html
    FreeMarker是一個用Java語言編寫的模板引擎,它基于模板來生成文本輸出。
    FreeMarker與Web容器無關(guān),即在Web運(yùn)行時,它并不知道Servlet或HTTP。
    它不僅可以用作表現(xiàn)層的實(shí)現(xiàn)技術(shù),而且還可以用于生成XML,JSP或Java 等。

    Demo:
    一、在eclipse中創(chuàng)建FreeMarker模板
    ${user.userName}
    ${user.userPassword}
    并將其命名為“user.ftl”

    二、在eclipse中創(chuàng)建FreeMarker數(shù)據(jù)模型
    以User為例:
     1 package test.client;
     2 
     3 /**
     4  * 用戶實(shí)體類
     5  * 
     6  * @author Ying-er
     7  * @time 2010-2-6下午04:05:25
     8  * @version 1.0
     9  */
    10 public class User {
    11     private String userName;
    12 
    13     private String userPassword;
    14 
    15     public String getUserName() {
    16         return userName;
    17     }
    18 
    19     public void setUserName(String userName) {
    20         this.userName = userName;
    21     }
    22 
    23     public String getUserPassword() {
    24         return userPassword;
    25     }
    26 
    27     public void setUserPassword(String userPassword) {
    28         this.userPassword = userPassword;
    29     }
    30 
    31 }
    32 

    注意:注意:FreeMarker數(shù)據(jù)模型不是文本文件,而是樹狀結(jié)構(gòu)的。

    三、在eclipse中填充FreeMarker數(shù)據(jù)模型
    將創(chuàng)建好的User對象以key-value的形式封裝到Map中
    片段代碼:
    User user = new User();
            user.setUserName(
    "測試");
            user.setUserPassword(
    "123");

            Map
    <String, Object> root = new HashMap<String, Object>();
            root.put(
    "user", user);

    四、創(chuàng)建FreeMarker的模板引擎,解析模板
    1.創(chuàng)建和配置Configuration對象,Configuration對象實(shí)例負(fù)責(zé)管理FreeMarker模板的路徑加載及模板的創(chuàng)建和緩存。
      通常應(yīng)用程序的生命周期中只會創(chuàng)建一個Configuration實(shí)例。
    2.獲取模板實(shí)例,即通過Configuration實(shí)例獲取Template實(shí)例,調(diào)用getTemplate()方法。
    3.合并數(shù)據(jù)模型和模板

    該步驟完整代碼:
     1 package test.freemarker.util;
     2 
     3 import java.io.File;
     4 import java.io.IOException;
     5 import java.io.OutputStreamWriter;
     6 import java.io.Writer;
     7 import java.util.Map;
     8 
     9 import freemarker.template.Configuration;
    10 import freemarker.template.DefaultObjectWrapper;
    11 import freemarker.template.Template;
    12 import freemarker.template.TemplateException;
    13 
    14 /**
    15  * freemarker 模板工具
    16  * 
    17  * @author Ying-er
    18  * @time 2010-2-6下午04:07:27
    19  * @version 1.0
    20  */
    21 public class FreeMarkertUtil {
    22     /**
    23      * 
    24      * @param templateName
    25      *            模板文件名稱
    26      * @param templateEncoding
    27      *            模板文件的編碼方式
    28      * @param root
    29      *            數(shù)據(jù)模型根對象
    30      */
    31     public static void analysisTemplate(String templateName,
    32             String templateEncoding, Map<??> root) {
    33         try {
    34             /**
    35              * 創(chuàng)建Configuration對象
    36              */
    37             Configuration config = new Configuration();
    38             /**
    39              * 指定模板路徑
    40              */
    41             File file = new File("templates");
    42             /**
    43              * 設(shè)置要解析的模板所在的目錄,并加載模板文件
    44              */
    45             config.setDirectoryForTemplateLoading(file);
    46             /**
    47              * 設(shè)置包裝器,并將對象包裝為數(shù)據(jù)模型
    48              */
    49             config.setObjectWrapper(new DefaultObjectWrapper());
    50 
    51             /**
    52              * 獲取模板,并設(shè)置編碼方式,這個編碼必須要與頁面中的編碼格式一致
    53              */
    54             Template template = config.getTemplate(templateName,
    55                     templateEncoding);
    56             /**
    57              * 合并數(shù)據(jù)模型與模板
    58              */
    59             Writer out = new OutputStreamWriter(System.out);
    60             template.process(root, out);
    61             out.flush();
    62             out.close();
    63         } catch (IOException e) {
    64             e.printStackTrace();
    65         } catch (TemplateException e) {
    66             e.printStackTrace();
    67         }
    68 
    69     }
    70 }
    71 




    posted on 2010-02-06 16:42 Ying-er 閱讀(25122) 評論(8)  編輯  收藏

    評論:
    # re: FreeMarker入門 2012-11-08 21:56 | huimark
    嗯,學(xué)習(xí)學(xué)習(xí)。。。。  回復(fù)  更多評論
      
    # re: FreeMarker入門 2013-03-14 10:38 | 完全
    學(xué)習(xí)  回復(fù)  更多評論
      
    # re: FreeMarker入門 2013-07-12 16:21 | 柯新豪
    簡潔明了  回復(fù)  更多評論
      
    # re: FreeMarker入門 2013-12-30 14:14 | 開發(fā)吧
    挺簡潔的,如果有圖更清晰。  回復(fù)  更多評論
      
    # re: FreeMarker入門 2014-07-19 17:46 | zuidaima
    freemarker代碼下載:zuidaima.com/share/search.htm?key=freemarker  回復(fù)  更多評論
      
    # re: FreeMarker入門 2014-09-18 14:14 | zuidaima
    # re: FreeMarker入門 2014-10-27 16:29 | e
    怎么看效果  回復(fù)  更多評論
      
    # re: FreeMarker入門[未登錄] 2014-11-12 11:51 | 123

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲国产高清在线| 香蕉视频在线观看亚洲| 亚洲性色精品一区二区在线| 在线日本高清免费不卡| 亚洲色图在线观看| 久久www免费人成看片| 亚洲成av人片在线看片| 免费下载成人电影| 亚洲日本VA午夜在线电影| 成年女人男人免费视频播放 | 国产成人精品曰本亚洲79ren| 羞羞网站免费观看| 免费人成激情视频| 伊人久久大香线蕉免费视频| 国产精品亚洲片在线观看不卡| 日本黄色动图免费在线观看| 久久久久亚洲av无码专区喷水 | 精品久久久久久久免费加勒比| 亚洲AV无码成人精品区日韩| 亚洲国产电影av在线网址| 国产免费牲交视频免费播放| 精品久久久久久亚洲| 2019中文字幕在线电影免费 | 妞干网手机免费视频| 美女裸体无遮挡免费视频网站| 国产亚洲午夜高清国产拍精品| 无码日韩精品一区二区免费暖暖| 亚洲精品亚洲人成在线麻豆| 日本特黄a级高清免费大片| 亚洲第一视频在线观看免费| 亚洲视频精品在线| 国产成人精品高清免费| 在线涩涩免费观看国产精品| 亚洲国产中文在线二区三区免| 免费国产不卡午夜福在线| 国产啪精品视频网站免费尤物| 精品丝袜国产自在线拍亚洲| 国产亚洲精aa成人网站| 1000部拍拍拍18勿入免费凤凰福利| 国产成人亚洲精品无码AV大片| 亚洲妇熟XXXX妇色黄|