badqiu

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

          擴展freemarker,實現模板的繼承

          現擴展freemarker,新增加三個指令: @extends,@block,@override

          一.目的

          • 父模板頁面定義好布局,子模板可以重定義布局中的部分內容
          • 使模板可以實現類似"類"的繼承關系,并不限繼承層次

          二.繼承概欖

          父模板: base.ftl
          <html>  
              
          <head>  
                  
          <@block name="head">base_head_content</@block>  
              
          </head>  
              
          <body>  
                  
          <@block name="body">base_body_content</@block>  
              
          </body>  
          </html>  
          子模板child.ftl
          <@override name="body">  
              
          <div class='content'>  
                  Powered By rapid-framework  
              
          </div>  
          </@override>  
          <@extends name="base.flt"/> 

          子模板child.ftl輸出

          <html>  
              
          <head>  
                  base_head_content  
              
          </head>  
              
          <body>  
                  
          <div class='content'>  
                      Powered By rapid-framework  
                  
          </div>  
              
          </body>  
          </html> 
          可以看到,body部分被重定義了,而head部分則還是顯示父模板的內容。

          三.指令介紹

          • @block : 定義塊,可以被子模板用@override指令覆蓋顯示
          • @override :  覆蓋@block指令顯示的內容
          • @extends : 繼承其它模板,必須放在模板的最后面(注:該指令完全等價于#include指令,只是為了提供統一的語義,即extends比include更好理解)

          四.使用說明

          要使用如上三個自定義指令,必須在freeemarker的Configuration中注冊。使用如下代碼:
          configuration.setSharedVariable("block"new BlockDirective());  
          configuration.setSharedVariable(
          "override"new OverrideDirective());  
          configuration.setSharedVariable(
          "extends"new ExtendsDirective());  

          以上三個指令屬于rapid-framework的擴展,后續新版本發布將包含該項擴展,敬請關注。具體指令源碼請查看:
            http://rapid-framework.googlecode.com/svn/trunk/rapid-framework/src/rapid_framework_common/cn/org/rapid_framework/freemarker/directive/

          posted on 2009-12-22 23:47 badqiu 閱讀(3771) 評論(1)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 彩票| 肥西县| 衢州市| 个旧市| 都江堰市| 进贤县| 清原| 江山市| 九台市| 博白县| 射洪县| 读书| 安国市| 甘谷县| 子洲县| 武鸣县| 成都市| 临朐县| 无为县| 榆树市| 敖汉旗| 海兴县| 玉林市| 肥西县| 晴隆县| 莱西市| 蚌埠市| 安图县| 苗栗市| 德州市| 夏邑县| 丹凤县| 久治县| 土默特右旗| 武乡县| 鞍山市| 兴城市| 蚌埠市| 磐石市| 游戏| 皋兰县|