badqiu

          XPer
          隨筆 - 46, 文章 - 3, 評論 - 195, 引用 - 0
          數據加載中……

          擴展freemarker,velocity,實現模板的管道操作

          操作系統中有一個很重要的功能,就是可以使用管道,即將前一個應用程序的輸出流作為下一個應用程序的輸入流. 現擴展的freemarker,velocity實現同樣的功能。

          一.功能介紹

          1.將前一個模板的輸出,變成一個變量,后一個模板可以通過變量引用前一個模板的輸出

          2.整個管道下的模板都在同一個context中,即模板間可以相互引用變量

           

          二.管道定義表達式

          first.ftl | second.flt | three.flt

           

          三.模板管道(Pipeline)示意圖

          管道示意圖

           

          四.API示例使用

           
          
          Configuration conf = new Configuration();
          // other settings for Configuration
          Pipeline pipeline = new FreemarkerPipeline(conf);
          pipeline.pipeline(
          "first.flt | second.flt | three.flt", map , writer);

          五.管道與繼承結合

          將管道操作與我之前擴展的模板繼承相結合,即可打造一個完美的頁面布局框架.

          管道+繼承示意圖如下:

          管道+繼承示意圖

           

          六.源代碼

          請查看: http://rapid-framework.googlecode.com/svn/trunk/rapid-framework/src/rapid_framework_common/cn/org/rapid_framework/pipeline/

           

          結論:

          使用pipeline及繼承相結合,目的是替換現有的布局工具:sitemesh,tiles,與sitemesh相比,現有的繼承指令會比sitemesh的性能要高,繼承的關系比tiles更加易于理解,打造一個適用于rapid-framework的全新頁面布局系統.

           

          以上相關內容屬于rapid-framework下一版本的更新內容,請關注.

           

           

          posted on 2010-01-12 21:03 badqiu 閱讀(1707) 評論(1)  編輯  收藏

          評論

          # re: 擴展freemarker,velocity,實現模板的管道操作[未登錄]  回復  更多評論   

          很好,這樣就能實現很多復雜功能。
          但我有個疑問。實際開發中,各個模塊頁面一般會單獨測試,然后再整合到一起。
          但是局部模塊有時需要各種變量參數,有時單獨測試沒問題,整合后就會出現錯誤。或者整合后沒問題,單獨的就無法運行。
          請問你是否遇到類似情況,怎么考慮和解決的?
          2010-01-13 09:12 | lazy

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


          網站導航:
           
          主站蜘蛛池模板: 左云县| 波密县| 泰安市| 阜阳市| 万州区| 全椒县| 迁安市| 齐河县| 班玛县| 建德市| 忻城县| 甘肃省| 井陉县| 东光县| 霍州市| 东乡县| 海宁市| 徐州市| 泗洪县| 和平区| 新乐市| 岗巴县| 兴宁市| 周宁县| 扎赉特旗| 通州区| 米易县| 昌乐县| 海城市| 隆回县| 盘锦市| 常德市| 马边| 永安市| 祥云县| 大化| 靖宇县| 宣恩县| 永胜县| 工布江达县| 咸宁市|