Velocity中加载vm文件的三种方式

Velocity中加载vm文件的三种方式:

a.  加载classpath目录下的vm文件

Properties p = new Properties();
        // 加载classpath目录下的vm文件
        // 这里是加载模板VM文件,比如:/META-INF/template/Web_B2CPayment.vm(请参考mas_spring_integration.xml)
        p.setProperty("file.resource.loader.class",
                "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
        p.setProperty(Velocity.ENCODING_DEFAULT, "UTF-8");
        p.setProperty(Velocity.OUTPUT_ENCODING, "UTF-8");
        // 初始化Velocity引擎,init对引擎VelocityEngine配置了一组默认的参数
        Velocity.init(p);

初始化成功后,使用:Velocity.getTemplate(templateFilePath); 加载文件!

b. 根据绝对路径加载 (vm文件置于硬盘某分区中,如:d:/template/test.vm)

Properties p = new Properties();
        // 初始化默认加载路径为:D:/template
        p.setProperty(VelocityEngine.FILE_RESOURCE_LOADER_PATH, "D:/template")
        p.setProperty(Velocity.ENCODING_DEFAULT, "UTF-8");
        p.setProperty(Velocity.OUTPUT_ENCODING, "UTF-8");
        // 初始化Velocity引擎,init对引擎VelocityEngine配置了一组默认的参数
        Velocity.init(p);

初始化成功后,使用:Velocity.getTemplate("test.vm"); 加载文件!

c. 使用文本文件

   首先定义一个velocity.properties文件

  

input.encoding = UTF-8
file.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader

   然后,已流的形式加载该文件

Properties p = new Properties();
        // 加载properties文件
        p.load(this.getClass().getResourceAsStream("/velocity.properties"));
        // 初始化Velocity引擎,init对引擎VelocityEngine配置了一组默认的参数
        Velocity.init(p);

 初始化成功后,使用:Velocity.getTemplate("test.vm"); 加载文件!

velocity定义了模板文件:*.vm,通过VelocityEngine加载该模板,以流的形式读取该模板,然后加载一个java对象,并将模板填充。

示例

时间: 2024-10-25 02:04:42

Velocity中加载vm文件的三种方式的相关文章

转 Velocity中加载vm文件的三种方式

Velocity中加载vm文件的三种方式 velocitypropertiespath Velocity中加载vm文件的三种方式:   方式一:加载classpath目录下的vm文件 Properties p = new Properties(); p.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); Ve

javaweb中加载外部文件的三种方式

1.request.getSession().getServletContext().getResourceAsStream("/WEB-INF/classes/a.txt""); / 相对对于项目的根路径 2.getClass().getClassLoader().getResourceAsStream("/a.txt") / 不管有没有'/' 都相对于classpath路径(/WEB-INF/classes/) 3.getClass().getReso

VC6.0加载lib文件的三种方法

MFC编写程序,都要用到动态链接库,MFC相关的动态库有MFCD42和MFC42等,MFC框架程序已经自动加载,那么如何引入第三方的动态链接库到工程中呢? 静态链接库是要先把程序中所需要使用的函数编译成机器码,保存在*.lib文件中.编译器会去*.lib中找出所需要的函数,并把这些函数的机器码复制一份,放在可执行文件中.将lib库引入工程,有下面3种方法. 第一种方法,lib文件直接加入到工程文件列表中. 在VC中打开“File View”一页,选中工程名,单击鼠标右键,然后在弹出的快捷菜单中选

ios网络学习------4 UIWebView的加载本地数据的三种方式

UIWebView是IOS内置的浏览器,可以浏览网页,打开文档  html/htm  pdf   docx  txt等格式的文件.  safari浏览器就是通过UIWebView做的. 服务器将MIME的标识符等放入传送的数据中告诉浏览器使用那种插件读取相关文件. uiwebview加载各种本地文件(通过loadData方法): - (void)viewDidLoad { [super viewDidLoad]; [self setupUI]; NSString *path = [[NSBund

PHP 中加载类文件的几种方法

PHP 中加载类文件,常用require语句或者include语句.二者的区别是:require语句包含的文件如果有语法错误或者不存在该文件,则会提示错误"fatal error",并且终止程序运行:include语句在同样的情况下,则是提示警告"warning",并且程序继续运行. PHP 加载类文件还可以用require_once或者include_once,他们与require语句或者include语句的区别在于:包含文件时会检查是否已有同样的文件被包含,若是

Spring加载properties文件的两种方式

在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修改源代码,这样更加方便.在Spring中也可以这么做,而且Spring有两种加载properties文件的方式:基于xml方式和基于注解方式.下面分别讨论下这两种方式. 1. 通过xml方式加载properties文件 我们以Spring实例化dataSource为例,我们一般会在beans

UIWebView的加载本地数据的三种方式

UIWebView是iOS内置的浏览器,可以浏览网页,打开文档  html/htm  pdf   docx  txt等格式的文件.  safari浏览器就是通过UIWebView做的. 服务器将MIME的标识符等放入传送的数据中告诉浏览器使用那种插件读取相关文件. uiwebview加载各种本地文件(通过loadData方法): - (void)viewDidLoad{    [super viewDidLoad];    [self setupUI];        NSString *pat

Spring加载Properties配置文件的三种方式

一.通过 context:property-placeholder 标签实现配置文件加载 1) 用法: 1.在spring.xml配置文件中添加标签 <context:property-placeholder ignore-unresolvable="true" location="classpath:redis-key.properties"/> 2.在 spring.xml 中使用 配置文件属性:$ <!-- 基本属性 url.user.pas

worker中加载本地文件报错的解决方案

如果在一个swf的主线程中加载文件时,报安全沙箱的错误, 网上有诸多的解决方案.但是如果在一个worker中加载本地文件报类似如下的错误: *** 安全沙箱冲突 *** SecurityError: Error #2148 不能访问本地资源. 网上给出的方案几乎都不能有效的解决问题, 之所以说几乎, 是因为如果以后读者搜到这篇文章时, 有效的解决方案就在这里. 即在本地架设一个http资源服务器, 加载的时候不要用本地地址作为加载路径,而是使用http 地址作为加载地址即可正确加载.