無線&移動互聯網技術研發

          換位思考·····
          posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          我參與的團隊

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 358379
          • 排名 - 155

          巧用Freemarker的自定義方法

          Posted on 2010-03-03 09:53 Gavin.lee 閱讀(528) 評論(0)  編輯  收藏 所屬分類: FreeMarker
          原文:http://gzhzh.javaeye.com/blog/433273

          一直以來,都想在FTL模板頁面里應用java的方法。
          “要想使用Freemarker支持的自定義方法,需要實現freemarker.template.TemplateMethodModel接口,然后將方法對象放入到Freemarker的數據模型中,這樣在ftl文件中便可以像使用Freemarker內置方法一樣使用該方法了。”

          具體的需求方法:
          package yixun.wap.tools;

          import java.util.List;
          import freemarker.template.TemplateMethodModel;
          import freemarker.template.TemplateModelException;

          public class EncodeURLMethod implements TemplateMethodModel {

              
          /**  
               * 執行方法  
               * 
          @param argList 方法參數列表  
               * 
          @return Object 方法返回值  
               * 
          @throws TemplateModelException  
               
          */

              
          public Object exec(List arg0) throws TemplateModelException {
                  
          if(arg0.size() != 1{    //限定方法中必須且只能傳遞一個參數
                      throw new TemplateModelException("template exception");
                  }

                  
                  String encode 
          = java.net.URLEncoder.encode((String) arg0.get(0));
                  
          return encode;
              }

          }


          將EncodeURLMethod的實例對象放入模型中輸出:
          body.put("encodeURL"new EncodeURLMethod());

          在Freemarker模版文件中應用:
          ${body.encodeURL("時時彩")}

          得到的就是經過encoder的數據串了。這樣用起來就非常方便了,可以根據業務的需求,擴大FreeMarker的內置方法庫。
          主站蜘蛛池模板: 桐庐县| 新余市| 深州市| 驻马店市| 田阳县| 贵溪市| 封丘县| 乌什县| 锦州市| 南康市| 宁津县| 吉首市| 眉山市| 重庆市| 乌鲁木齐市| 公主岭市| 桐庐县| 五寨县| 乌兰察布市| 额济纳旗| 罗源县| 胶州市| 崇阳县| 石台县| 秀山| 偃师市| 通榆县| 泸定县| 永春县| 林周县| 扬州市| 什邡市| 龙口市| 个旧市| 孟村| 克东县| 贵溪市| 日照市| 南召县| 上思县| 汶川县|