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

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

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

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
    velocity使用基本來說比較簡單,但在加載模板時老出問題,很多初學者經常會遇到找不到模板這種異常。本文就針對目前常用的三種模板加載方式做以說明。
    velocity官方幫助文檔
    其工程目錄結構大致為
    點我下載示例代碼

    一、velocity默認的加載方式(文件加載方式)
    package com.velocity.test;

    import java.io.StringWriter;
    import java.util.Properties;

    import org.apache.velocity.VelocityContext;
    import org.apache.velocity.app.VelocityEngine;

    /**
     * 從文件中加載模板文件,即velocity默認的模板文件加載方式
     * 
    @author welcome
     *
     
    */
    public class LoaderFromFile {
        
        
    public static void main(String[] args) throws Exception{
            
    //初始化參數
            Properties properties=new Properties();
            
    //設置velocity資源加載方式為file
            properties.setProperty("resource.loader""file");
            
    //設置velocity資源加載方式為file時的處理類
            properties.setProperty("file.resource.loader.class""org.apache.velocity.runtime.resource.loader.FileResourceLoader");
            
    //實例化一個VelocityEngine對象
            VelocityEngine velocityEngine=new VelocityEngine(properties);
            
            
    //實例化一個VelocityContext
            VelocityContext context=new VelocityContext();
            
    //向VelocityContext中放入鍵值
            context.put("username""張三");
            context.put(
    "password""123456789");
            context.put(
    "age""20");
            context.put(
    "address""陜西西安"); 
            context.put(
    "blog""http://blogjava.net/sxyx2008");
            
    //實例化一個StringWriter
            StringWriter writer=new StringWriter();
            
    //從vm目錄下加載hello.vm模板,在eclipse工程中該vm目錄與src目錄平級
            velocityEngine.mergeTemplate("vm/hello.vm""gbk", context, writer);
            System.out.println(writer.toString());
            
        }
    }
    二、從類路徑加載模板文件
    package com.velocity.test;

    import java.io.StringWriter;
    import java.util.Properties;

    import org.apache.velocity.VelocityContext;
    import org.apache.velocity.app.VelocityEngine;

    /**
     * 從class(類路徑)中加載模板文件
     * 
    @author welcome
     *
     
    */
    public class LoaderFromClass {
        
        
    public static void main(String[] args) throws Exception{
            
    //初始化參數
            Properties properties=new Properties();
            
    //設置velocity資源加載方式為class
            properties.setProperty("resource.loader""class");
            
    //設置velocity資源加載方式為file時的處理類
            properties.setProperty("class.resource.loader.class""org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
            
    //實例化一個VelocityEngine對象
            VelocityEngine velocityEngine=new VelocityEngine(properties);
            
            
    //實例化一個VelocityContext
            VelocityContext context=new VelocityContext();
            
    //向VelocityContext中放入鍵值
            context.put("username""張三");
            context.put(
    "password""123456789");
            context.put(
    "age""20");
            context.put(
    "address""陜西西安"); 
            context.put(
    "blog""http://blogjava.net/sxyx2008");
            
    //實例化一個StringWriter
            StringWriter writer=new StringWriter();
            
            
    //從src目錄下加載hello.vm模板
            
    //假若在com.velocity.test包下有一個hello.vm文件,那么加載路徑為com/velocity/test/hello.vm
            velocityEngine.mergeTemplate("com/velocity/test/hello.vm""gbk", context, writer);
            
            
    //velocityEngine.mergeTemplate("hello.vm", "gbk", context, writer);
            System.out.println(writer.toString());
        }
    }
    三、從jar文件中加載模板文件
    package com.velocity.test;

    import java.io.StringWriter;
    import java.util.Properties;

    import org.apache.velocity.VelocityContext;
    import org.apache.velocity.app.VelocityEngine;

    /**
     * 從jar文件中加載模板文件
     * 
    @author welcome
     *
     
    */
    public class LoaderFromJar {
        
        
    public static void main(String[] args) throws Exception{
            
    //初始化參數
            Properties properties=new Properties();
            
    //設置velocity資源加載方式為jar
            properties.setProperty("resource.loader""jar");
            
    //設置velocity資源加載方式為file時的處理類
            properties.setProperty("jar.resource.loader.class""org.apache.velocity.runtime.resource.loader.JarResourceLoader");
            
    //設置jar包所在的位置
            properties.setProperty("jar.resource.loader.path""jar:file:WebRoot/WEB-INF/lib/vm.jar");
            
    //實例化一個VelocityEngine對象
            VelocityEngine velocityEngine=new VelocityEngine(properties);
            
            
    //實例化一個VelocityContext
            VelocityContext context=new VelocityContext();
            
    //向VelocityContext中放入鍵值
            context.put("username""張三");
            context.put(
    "password""123456789");
            context.put(
    "age""20");
            context.put(
    "address""陜西西安"); 
            context.put(
    "blog""http://blogjava.net/sxyx2008");
            
    //實例化一個StringWriter
            StringWriter writer=new StringWriter();
            
    //從/WebRoot/WEB-INF/lib/vm.jar中加載hello.vm模板  vm.jar的目錄結構為vm/hello.vm
            velocityEngine.mergeTemplate("vm/hello.vm""gbk", context, writer);
            System.out.println(writer.toString());
        }
    }

    請讀者朋友自行運行程序。
    點我下載示例代碼
    posted on 2010-11-11 13:29 雪山飛鵠 閱讀(12465) 評論(8)  編輯  收藏 所屬分類: velocity

    Feedback

    # re: velocity模板加載 2010-11-30 16:30 伏筆
    給你再補充一種變通的方式:
    pro.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, this.getClass().getResource("/").toString().replaceAll("^file:/", "").replaceAll("WEB-INF/classes","vm"));  回復  更多評論
      

    # re: velocity模板加載 2010-12-14 17:51 房子
    請教個文件加載的問題,
    velocity怎么也加載不到我硬盤上的模板,
    后臺報:
    嚴重: ResourceManager : unable to find resource 'C:\Downloads\template\modelNameInFileName.java.vm' in any resource loader.

    是我加載器的問題嗎
      回復  更多評論
      

    # re: velocity模板加載 2013-02-19 22:15 hell
    如果是Web項目,加載的模板在WEB-INF下,又該如何獲取模板呢?請教?  回復  更多評論
      

    # re: velocity模板加載 2013-02-19 22:29 hell
    @伏筆
    如果是Web項目,加載的模板在WEB-INF下,又該如何獲取模板呢?請教?@伏筆
      回復  更多評論
      

    # re: velocity模板加載 2013-02-20 13:21 coo
    @房子
    解決了?  回復  更多評論
      

    # re: velocity模板加載[未登錄] 2013-05-18 21:33 frank
    這個文章 寫得不錯,謝謝!  回復  更多評論
      

    # re: velocity模板加載[未登錄] 2013-11-20 16:32 你好
    請問如果模板被存儲到數據庫中取出后是流怎么加載??能不能直擊加載流???  回復  更多評論
      

    # re: velocity模板加載[未登錄] 2013-11-20 16:33 你好
    我郵箱744946073@qq.com謝謝大神了,我急用
      回復  更多評論
      

    主站蜘蛛池模板: 一级做a爰片久久毛片免费陪 | 伊人婷婷综合缴情亚洲五月| 中文字幕无码亚洲欧洲日韩| 成人午夜免费福利视频| 久久亚洲私人国产精品| 一级毛片免费观看| 亚洲网站在线观看| 18禁美女裸体免费网站| 亚洲最新永久在线观看| av免费不卡国产观看| 亚洲国产精品午夜电影| 美女视频黄的全免费视频网站| 亚洲国产综合人成综合网站00| 亚洲香蕉免费有线视频| 中中文字幕亚洲无线码| 在线a人片天堂免费观看高清| 亚洲乱色伦图片区小说| 免费A级毛片无码久久版| igao激情在线视频免费| 亚洲中久无码永久在线观看同| 久久精品国产这里是免费| 亚洲最大的成网4438| 成人a免费α片在线视频网站 | 狠狠躁狠狠爱免费视频无码| 国产成人综合亚洲AV第一页| 久久精品一区二区免费看| 亚洲一级黄色大片| 亚洲男人av香蕉爽爽爽爽| 99精品一区二区免费视频| 亚洲一久久久久久久久| 亚洲人成电影在线播放| 日本免费在线观看| 亚洲乱理伦片在线观看中字| 亚洲真人日本在线| 免费v片在线观看视频网站| 国产成人高清亚洲一区91| 亚洲av永久无码精品国产精品| 国产在线观看片a免费观看| 边摸边脱吃奶边高潮视频免费| 亚洲国产一区在线| 日本久久久免费高清|