Velocity 初始化过程解析
Velocity 是一个表示层的模板框架,作为 jsp 的替代者,有着很多优势。小巧方便,不
必使用 el 或者其他表示层技术来展示页面,感觉是一个很新颖的技术。
Velocity 作为 MVC 框架中的 V 存在,和普通 jsp 页面有着不同,它是一种 template 引
擎,利用先编辑完的格式来作为大纲,把一些需要变化的地方作为参数传入,显示时将模
板和参数合并,达到最终输出的样子。本文使用目前最新的 velocity1.6.2.jar 包进行解析。
最根本的 velocity 就是由 template,engine,context 组成。
1、首先创建一个 template(如果是用在 web 上就是一个 html 文件),将需要参数化或
实例化的地方用跟 context 有关的符号标记出来,标记时使用 velocity template language。而
template 应该可以是任意的文本。
2、给 context 设定一些值,这些值用来替换在 template 中被标记的地方。
3、利用 engine 将 template 中需要替换的地方用 context 中的值替换掉,也就是所谓的
merge,从而得到该模板的实例。
简单的用 java 代码来输出就是:
VelocityEngine velocity = new VelocityEngine();
VelocityContext context = new VelocityContext();
context.put("name", "czy");
Template template =
velocity.getTemplate("/src/main/resources/test.vm");
BufferedWriter writer = new BufferedWriter(new
OutputStreamWriter(System.out));
template.merge(context, writer);
writer.flush();
writer.close();
至于我们为什么使用 VelocityEngine 而不是使用 Velocity 类,或者说两者有什
么区别,请看《VelocityEngine 和
类解析 》
我们假设使用普通的 velocityEngine 来作为引擎,来进入初始化的过程。
Velocity 的初始化有多种方式:
1、init()
2、init(Properties p)
3、init(String propertiesName)
第 一 种 init() 方 式 是 最 简 单 的 方 式 , 当 我 们 的 程 序 没 有 配 置 类 似
velocity.properties 这样的文件的时候,就会使用默认的配置文件来初始化,默认
的配置文件的位置在
org/apache/velocity/runtime/defaults/velocity.properties