<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    badqiu

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

    擴展Velocity,實現模板的繼承

    與我之前的擴展freemarker類似,現新增加三個指令:block,override,extends

    一.目的:

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

    二.繼承概欖:

    父模板:base.vm

    <html>
    <head>
        #block("head") 
            base_head_content 
        #end 
    </head>
    <body> 
        #block("body") 
            base_body_content 
        #end
    </body>
    </html>

     

    子模板: child.vm

    #override("body")
        
    <div class='content'>
            Powered By rapid-framework
        
    </div> 
    #end
    #extends("base.vm")

     

    子模板child.vm輸出

    <html>
        
    <head>
            base_head_content 
        
    </head>
    <body> 
        
    <div class='content'>
            Powered By rapid-framework
        
    </div> 
    </body>
    </html>

     

    可以看到,輸出中body部分被子模板重定義(override)了,而head部分則還是顯示父模板(block)中的內容。

     

    三.指令介紹:

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

    四.使用說明:

    在velocity的properties中可以設置:

    userdirective=cn.org.rapid_framework.velocity.directive.BlockDirective,cn.org.rapid_framework.velocity.directive.OverrideDirective,cn.org.rapid_framework.velocity.directive.ExtendsDirective
    然后再初始化,即使用自定義指令:
    velocityEngine.init(properties);
    使用注意(性能):
    必須為velocity的ResourceLoader開啟cache,因為 engine.getTemplate(name) 默認是沒有使用cache的,而#extends是需要經常調用該函數,所以必須為ResourceLoader指定開啟cache,如FileResourceLoader
    
    
    file.resource.loader.cache = true

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

    posted on 2009-12-28 20:55 badqiu 閱讀(3463) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲一区二区无码偷拍| 久久夜色精品国产亚洲av| 亚洲美女一区二区三区| 国产免费网站看v片在线| 亚洲一区二区视频在线观看| 九九久久精品国产免费看小说 | 中文毛片无遮挡高潮免费| 亚洲∧v久久久无码精品| 无码日韩精品一区二区免费暖暖 | 亚洲国产美女在线观看| 男女免费观看在线爽爽爽视频| 亚洲18在线天美| 在线A级毛片无码免费真人| 欧美日韩亚洲精品| 免费国产在线观看老王影院| 一级一级毛片免费播放| 亚洲日韩aⅴ在线视频| 国产无遮挡无码视频免费软件| 亚洲国产精品久久66| 国产桃色在线成免费视频 | 亚洲国产精品久久人人爱| 1000部啪啪毛片免费看| 亚洲男人天堂2018av| 免费人成视网站在线观看不卡| 成在线人免费无码高潮喷水| 亚洲国产精品婷婷久久| 在线观看的免费网站| 国产精品亚洲天堂| 亚洲国产成人私人影院| 久久久久久久久免费看无码| 国产成人亚洲精品电影| 亚洲精品乱码久久久久66| 8x网站免费入口在线观看| 亚洲精品无码一区二区| 亚洲综合熟女久久久30p| 精品熟女少妇a∨免费久久| 亚洲欧美日韩一区二区三区在线| 中文字幕亚洲一区二区三区| 亚洲免费视频在线观看| 在线观看亚洲免费| 久久亚洲私人国产精品|