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 閱讀(1704) 評論(1)  編輯  收藏

          評論

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

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

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


          網站導航:
           
          主站蜘蛛池模板: 宝兴县| 晋城| 九江市| 三江| 佛教| 潮安县| 榆林市| 侯马市| 石楼县| 棋牌| 乌恰县| 唐山市| 富宁县| 祁东县| 阿拉善左旗| 江津市| 汝州市| 调兵山市| 隆林| 柳州市| 东乌珠穆沁旗| 庄河市| 永州市| 天津市| 新干县| 德格县| 灵寿县| 绍兴市| 东平县| 布尔津县| 漳浦县| 茶陵县| 揭西县| 象州县| 驻马店市| 阳春市| 新干县| 阜城县| 忻州市| 普兰县| 宿松县|