运行时的配置runtime configuration
[1]默认方式:Velocity.init();
[2]利用配置文件:
配置文件:
## Specify the names of our custom libraries
velocimacro.library = tags.vm, labels.vm
## Disable inline Velocimacro definitions
velocimacro.permissions.allow.inline = false
## Enable Velocimacro library auto-reloading
velocimacro.library.autoreload = true
相关代码:
// Initialize template engine
try
{
Velocity.init( "custom.properties" );
}
catch( Exception x )
{
System.err.println( "Failed to initialize Velocity: " + x );
System.exit( 1 );
}
[3]利用Properties对象,建立属性。
Properties customProps = new Properties();
// Specify the names of our custom libraries
customProps.setProperty( "velocimacro.library", "tags.vm, labels.vm" );
// Disable inline Velocimacro definitions
customProps.setProperty( "velocimacro.permissions.allow.inline", "false" );
// Enable Velocimacro library auto-reloading
customProps.setProperty( "velocimacro.library.autoreload", "true" );
// Initialize template engine
try
{
Velocity.init( customProps );
}
catch( Exception x )
{
System.err.println( "Failed to initialize Velocity: " + x );
System.exit( 1 );
}
[4]直接利用Velocity.setProperty
// Specify the names of our custom libraries
Velocity.setProperty( "velocimacro.library", "tags.vm, labels.vm" );
// Disable inline Velocimacro definitions
Velocity.setProperty( "velocimacro.permissions.allow.inline", "false" );
// Enable Velocimacro library auto-reloading
Velocity.setProperty( "velocimacro.library.autoreload", "true" );
// Initialize template engine
try
{
Velocity.init();
}
catch( Exception x )
{
System.err.println( "Failed to initialize Velocity: " + x );
System.exit( 1 );
}
运行时配置的属性分6类
[1]directive,影响velocity指令的行为
[2]encoding,template的编码和跟velocity template engine相关的工具的数据。
[3]logging,影响velocity使用的日志系统的行为。
[4]resource management,velocity的资源管理的行为。
资源就是template engine的输入,resource loader就是知道resource位置的实体entity。有几种resource loader:File,JAR,Classpath,DataaSource,分别有相应的类去实现,比如FileResourceLoader,JarResourceLoader等。
[5]miscellaneous,影响velocity的各种行为。
[6]velocimacros
事件:
为了更好控制template processing,velocity提供有限的基于事件处理的用户交互。有三种事件:
[1]试图通过#set指令,将null赋值给一个velocity引用时,NullSetEventHandler,
[2]java方法试图调用velocity方法或属性引用抛出异常时,MethodExceptionEventHandler
[3]跟velocity引用有关的value被插入到输出流output stream的时候,ReferenceInsertionEventHandler
多个context构成的context chaining:
在一个应用中可以使用一个context,也可以使用多个context,多个context间会有wrap关系。
比如,在层次化的数据中data layering,先创建一个context包含核心数据,然后利用这个context,创建另一个context包含附加数据,这个context还可以继续被用来创建新的context。这样做的情况是:从独立的数据集中创建一个聚集的数据集aggregate data set,后面的数据会覆盖前面的数据。另一个情况是:核心数据将保存一个template,但是对不同的template processing需要在该template基础上做些修改。
空格的处理:
的输出:
可以看到template中的空格影响了最后的输出结果,这是要注意的。
Singleton和非singleton的velocity engine:
非singleton的模式允许多个velocity engine同时存在于jvm中。多个velocity engine对需要多个运行时配置的情况有用。
|
相关推荐
该文档为velocity学习笔记,包含一些常见问题
Velocity中文学习指南
velocity中文手册 velocity学习资料
关于velocity的学习资料,velocity教程和velocity用户手册
Velocity学习资料,从网上找到的其中学习笔记由个人编写,希望大家借鉴,后续继续完善中。
使用struts配置含有velocity的Web项目,并且成功跳转,并使用Velocity展示数据
Velocity教程
velocity学习笔记与struts2整合 velocity学习笔记与struts2整合 velocity学习笔记与struts2整合
本指南中有很多示例展示了用Velocity来讲动态内容嵌入到网站之中,但是所有的VTL examples 都同演示用于所有的页面和模版。 感谢选择Velocity! 2. 什么是Velocity? Velocity是一个基于Java的模版引擎。它允许...
JAVA的Velocity语法学习 内涵《Velocity_java开发指南》《Java的模板引擎Velocity初体验》 以及所必须的jar ,和大家一块学习,很好哦
本课程的定位是velocity的系统教学课程 , 从基础到进阶 , 所以只要对velocity感兴趣 , 想系统学习velocity的开发人员都可以学习本课程 ! 学习本课程对你有如下要求 : l 有一定的JAVA编程基础(velocity engine要求) l...
velocity_中文手册,是学习velocity模板编程不可多得的入门级教程。
Velocity 的主要目标是通过模板生成格式文档. 因此, Velocity自身不提供任何Web相关的功能. 当你需要开发Web应用时, 需要一个框架来接收 HTTP请求和, 处理用户认证,执行业务逻辑调用,最后生成应答内容返回给客户端...
Velocity学习指南
velocity学习资料
本资料详解了velocity的语法,以及入门例子详解。是刚入门学习velocity的很好的资料,欢迎大家下载使用。
Velocity 入门资料,适合 初学者学习,内容浅显易懂
Velocity是前段的技术,它非常的灵活,跟JSP相差不多,但是动态的显示数据,值的我们学习!