Velocity是一个基于Java的模板引擎,它提供了HTML页面模板、email模板和通用开源代码生成器模板。它允许开发者使用简单而强大的模板语言来引用Java代码中定义的对象。当Velocity用于Web开发时,Web设计人员可以与Java程序员并行工作,以根据模型 - 视图 - 控制器(MVC)模型开发Web网站,这意味着网页设计人员可以专注于前端设计,而程序员可以专注于编写代码。
Velocity将Java代码与网页分开,使网站在其生命周期内更加可维护,并为Java Server Pages(JSP)或PHP提供了可行的替代方案。
Velocity的功能远远超出了web的范围,它还可以用于从模板生成SQL、PostScript和XML。它可以用作生成源代码和报告的独立实用程序,也可以用作其他系统的集成组件。
velocity.properties 的一些配置项
velocimcro.library属性
指定自己的模板库,多个模板库以逗号分隔。默认情况下,velocity查找唯一的一个库:VM_global_library.vm
velocimacro.permissions.allow.inline属性
是否允许开发者在普通模板内定义Velocity宏。
velocimacro.permissions.allow.inline.replace.global属性
是否允许设计者使用本地的inline的 宏替代全局的宏(全局的宏是指在velocimacro.library属性中指定的文件内定义的宏)。默认情况下,此值为false。这样就阻止本地的宏覆盖全局的。
velocimacro.permissions.allow.inline.local.scale属性
inline定义的宏是否仅仅在被定义的template内可见, 默认是false。 换句话说,如果这个属性设置为true,一个inline定义的宏只能在定义它的template内使用。
velocimacro.context.localscope属性
默认值为false。当设置为true时,任何在宏内通过#set()对context的修改被认为是针对此宏的本地设置,而不会永久的影响内容。
velocimacro.library.autoreload属性
控制宏库的自动加载。默认是false。当设置为ture时,对于一个宏的调用将自动检查原始库是否发生了变化,如果变化将重新加载它。这个属性使得你可以不用重新启动servlet容器而达到重新加载的效果,就像你使用regular模板一样。这个属性可以使用的前提就是resource loader缓存是off状态(file.resource.loader.cache = false)。注意这个属性实际上是针对开发而非产品的。