velocity.properties配置说明

1.Runtime Log

runtime.log = velocity.log

用以指定 Velocity 运行时日志文件的路劲和日志文件名,如不是全限定的绝对路径,系统会认为想对于 当前目录.

runtime.log.logsystem

这个参数没有默认值,它可指定一个实现了 interface org.apache.velocity.runtime.log.LogSystem.的自定义日志处理对象给 Velocity。这就方便将 Velocity 与你己有系统的日志机制统一起来

runtime.log.logsystem.class = org.apache.velocity.runtime.log.AvalonLogSystem

上面这行,是一个示例来指定一个日志记录器.

runtime.log.error.stacktrace = false runtime.log.warn.stacktrace = false runtime.log.info.stacktrace = false 这些是错误消息跟踪的开关.将会生成大量、详细的日志内容输出.

runtime.log.invalid.references = true

当一个引用无效时,打开日志输出. 在生产系统运行中,这很有效,也是很有用的调试工具.

2.字符集编码问题

input.encoding = ISO-8859-1

输出模板的编码方式 (templates). 你可选择对你模板的编码方式,如 UTF-8.GBK.

output.encoding = ISO-8859-1

VelocityServlet 对输出流(output streams)的编码方式.

3.#foreach() Directive

directive.foreach.counter.name = velocityCount

在模板中使用#foreach() 指令时,这里设定的字符串名字将做为 context key 代表循环中的计数器名, 如以上设定,在模板中可以通过 $velocityCount 来访问.

directive.foreach.counter.initial.value = 1

#foreach() 中计数器的起始值.

4.#include() and #parse() Directive

directive.include.output.errormsg.start =

directive.include.output.errormsg.end =

使用#include()时,定义内部流中开始和结束的错误消息标记,如果两者都设这屯,错误消息将被输出到 流中'.但必须是两都定义.

directive.parse.maxdepth = 10 定义模板的解析深度,当在一个模板中用#parse()指示解析另外一个模板时,这个值可以防止解析时出现 recursion 解析.

5.资源管理

resource.manager.logwhenfound = true

定 义日志中的 'found' 务目开关.当打开时,如 ResourceManager 第一次发现某个资源时, the first time, theresource name and classname of the loader that found it will be noted in the runtime log.

resource.loader = <name> (default = File)

(可以有多个以.号分开的值),可以理解为指定资源文件的扩展名.

<name>.loader.description = Velocity File Resource Loader

描述资源装载器名字.

<name>.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader实现的资源装载器的类名. 默认的是文件装载器.

<name>.resource.loader.path = .

Multi-valued key. Will acceptCSV for value. 资源位置的根目录. 当前配置会使用FileResourceLoader and JarResourceLoader 遍历目录下的所有文件以查找资源.

<name>.resource.loader.cache = false 控制装载器是否对文件进行缓存.默认不存是为了方便开发和调试. 在生产环境布署(productiondeployment)时可设为 true 以提高性能, 这里参数 modificationCheckInterval 应设为一个有效值---以决定多久 reload 一次.

<name>.resource.loader.modificationCheckInterval = 2

当模把caching 打开时,这个以秒为单位的值指示系统多久检测一次模板是否己修改以决定是否需要,如 果设为 <= 0, Velocity 将不做检测.

FileResourceLoader 的默认参数完整示例:

resource.loader = file

file.resource.loader.description = Velocity File Resource Loader

file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoaderfile.resource.loader.path = .

file.resource.loader.cache = falsefile.resource.loader.modificationCheckInterval = 2

6.Velocima cro(宏配置)

velocimacro.library = VM_global_library.vm

Multi-valued key. Will acceptCSV for value.当 Velocity engine 运行时,要被载入的含有宏代码库的文件名. 所有模板都可访问宏(Velocimacros ). 这个文件位置在相对于资源文件的根目录下.

velocimacro.permissions.allow.inline = true

Determines of thedefinition of new Velocimacros via the#macro() directive in templates

isallowed,定义在模板中是否可用#macro()指令定义一个新的宏. 默认为 true,意味所有模板都可定义

new Velocimacros. 注意,这个设定,如模板中的有可能替换掉全局的宏定义.

velocimacro.permissions.allow.inline.to.replace.global = false

控制用户定义的宏是否可以可以替换 Velocity 的宏库.

velocimacro.permissions.allow.inline.local.scope = false

控制模板中的宏的专有命名空间.When true, 一个模板中的 #macro() directive 只能被定义它的模板

访问. 这意味者所有的宏都不能共想了,当然也不会互想扰乱、替换了.

velocimacro.context.localscope = false 控制 Velocimacro 的引用访问(set/get)是涉及到Context

范围还是仅在当前的 Velocimacro 中.

velocimacro.library.autoreload = false

控 制宏库是否自动载入. 设为 true 时,源始的 Velocimacro 将根据是否修改过而决定是否需要 reLoad, 可在调试时很方便,不需重启你的服务器,如用参数 file.resource.loader.cache = false 的设置一样, 主要是为方便开发调试用.

7.语义更改

runtime.interpolate.string.literals = true

Controls interpolation mechanism of VTL String Literals. Note that a VTL StringLiteral is specifically astring using doublequotes that is used in a #set() statement, a method

call of a reference, aparameter to a VM, or as an argument to a VTL directive in general. See the VTL reference for further information.

8.运行时配置

parser.pool.size = 20

控制 Velocity启动是需要创建并放到池中预备使用的模 板解析器的个数 ----这只是预装 . 默认的 20 个对一般用户来说足够了. 即使这个值小了,Velocity 也会运行时根据系统需要动态增加(但增加的不会装

入池中). 新增时会在日志中输出信息

相关推荐
深蓝海拓21 分钟前
Pyside6(PyQT5)中的QTableView与QSqlQueryModel、QSqlTableModel的联合使用
数据库·python·qt·pyqt
C嘎嘎嵌入式开发2 小时前
什么是僵尸进程
服务器·数据库·c++
Yeats_Liao4 小时前
Navicat 导出表结构后运行查询失败ERROR 1064 (42000): You have an error in your SQL syntax;
数据库·sql
明月看潮生5 小时前
青少年编程与数学 02-007 PostgreSQL数据库应用 15课题、备份与还原
数据库·青少年编程·postgresql·编程与数学
明月看潮生5 小时前
青少年编程与数学 02-007 PostgreSQL数据库应用 14课题、触发器的编写
数据库·青少年编程·postgresql·编程与数学
加酶洗衣粉9 小时前
MongoDB部署模式
数据库·mongodb
Suyuoa9 小时前
mongoDB常见指令
数据库·mongodb
添砖,加瓦9 小时前
MongoDB详细讲解
数据库·mongodb
Zda天天爱打卡9 小时前
【趣学SQL】第二章:高级查询技巧 2.2 子查询的高级用法——SQL世界的“俄罗斯套娃“艺术
数据库·sql
我的运维人生9 小时前
MongoDB深度解析与实践案例
数据库·mongodb·运维开发·技术共享