<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲人成网77777色在线播放| 四虎国产精品永久免费网址 | 亚洲成AV人片在线观看| aⅴ免费在线观看| 国产VA免费精品高清在线| 亚洲高清毛片一区二区| 91精品国产亚洲爽啪在线影院| 免费人成在线观看网站视频 | 国产亚洲精品自在久久| 四虎永久免费影院在线| 亚洲一本一道一区二区三区| 亚洲专区在线视频| 国产一卡二卡四卡免费| 鲁丝片一区二区三区免费| 黄色网页免费观看| 成人午夜影视全部免费看| 亚洲AV日韩综合一区| 亚洲国产精品网站在线播放| 亚洲人成片在线观看| 国产.亚洲.欧洲在线| 亚洲永久在线观看| 亚洲中文字幕无码亚洲成A人片 | 国产精品午夜免费观看网站 | 亚洲成AV人网址| 亚洲精品视频免费| 国产v亚洲v天堂无码网站| 最新国产AV无码专区亚洲| 亚洲人成网7777777国产| 国产精品亚洲аv无码播放| 亚洲AV无码乱码国产麻豆| 国产一区二区三区在线观看免费| 57pao一国产成视频永久免费| 最近中文字幕免费完整| 九九精品免费视频| 亚洲片国产一区一级在线观看| 日本特黄特色免费大片| 国产精品视_精品国产免费| 亚洲色图综合在线| 精品亚洲成AV人在线观看| 亚洲AV成人一区二区三区观看| 一级黄色片免费观看|