<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容器無關,即在Web運行時,它并不知道Servlet或HTTP。
    它不僅可以用作表現層的實現技術,而且還可以用于生成XML,JSP或Java 等。

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

    二、在eclipse中創建FreeMarker數據模型
    以User為例:
     1 package test.client;
     2 
     3 /**
     4  * 用戶實體類
     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數據模型不是文本文件,而是樹狀結構的。

    三、在eclipse中填充FreeMarker數據模型
    將創建好的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);

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

    該步驟完整代碼:
     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      *            數據模型根對象
    30      */
    31     public static void analysisTemplate(String templateName,
    32             String templateEncoding, Map<??> root) {
    33         try {
    34             /**
    35              * 創建Configuration對象
    36              */
    37             Configuration config = new Configuration();
    38             /**
    39              * 指定模板路徑
    40              */
    41             File file = new File("templates");
    42             /**
    43              * 設置要解析的模板所在的目錄,并加載模板文件
    44              */
    45             config.setDirectoryForTemplateLoading(file);
    46             /**
    47              * 設置包裝器,并將對象包裝為數據模型
    48              */
    49             config.setObjectWrapper(new DefaultObjectWrapper());
    50 
    51             /**
    52              * 獲取模板,并設置編碼方式,這個編碼必須要與頁面中的編碼格式一致
    53              */
    54             Template template = config.getTemplate(templateName,
    55                     templateEncoding);
    56             /**
    57              * 合并數據模型與模板
    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
    嗯,學習學習。。。。  回復  更多評論
      
    # re: FreeMarker入門 2013-03-14 10:38 | 完全
    學習  回復  更多評論
      
    # re: FreeMarker入門 2013-07-12 16:21 | 柯新豪
    簡潔明了  回復  更多評論
      
    # re: FreeMarker入門 2013-12-30 14:14 | 開發吧
    挺簡潔的,如果有圖更清晰。  回復  更多評論
      
    # re: FreeMarker入門 2014-07-19 17:46 | zuidaima
    freemarker代碼下載:zuidaima.com/share/search.htm?key=freemarker  回復  更多評論
      
    # re: FreeMarker入門 2014-09-18 14:14 | zuidaima
    # re: FreeMarker入門 2014-10-27 16:29 | e
    怎么看效果  回復  更多評論
      
    # re: FreeMarker入門[未登錄] 2014-11-12 11:51 | 123
    123  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 国产乱码免费卡1卡二卡3卡| 最新中文字幕免费视频| 国产伦精品一区二区三区免费迷| 久久亚洲精品专区蓝色区| 久久免费看黄a级毛片| 亚洲成AV人片久久| 国产91色综合久久免费| 亚洲人成网站在线观看播放青青| 无遮免费网站在线入口| jlzzjlzz亚洲jzjzjz| 成人毛片免费视频| 亚洲AV无码一区二区三区久久精品 | 亚洲成a∨人片在无码2023| 免费国产黄网站在线观看 | 亚洲天堂一区二区三区四区| 国产成人精品免费午夜app| 亚洲欧洲日产国码二区首页| 国产成人午夜精品免费视频| 久久亚洲国产成人影院| 日韩中文无码有码免费视频 | 亚洲免费一区二区| 久久国产一片免费观看| 亚洲精品白浆高清久久久久久| 麻豆精品不卡国产免费看| 亚洲无线电影官网| 青苹果乐园免费高清在线| 亚洲精品电影天堂网| 国产在线观看免费观看不卡 | 无码AV片在线观看免费| 亚洲美女人黄网成人女| 久久精品女人天堂AV免费观看| 亚洲av无码专区亚洲av不卡| 亚洲不卡AV影片在线播放| 老司机精品免费视频| 亚洲尹人九九大色香蕉网站| 久久国产免费福利永久| 亚洲久热无码av中文字幕| 亚洲国产精品激情在线观看 | 日韩亚洲精品福利| 亚洲va中文字幕| 国产成人精品久久亚洲高清不卡 |