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 也会运行时根据系统需要动态增加(但增加的不会装

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

相关推荐
Stone_OverLooking32 分钟前
Qt6.5.3 mingw64 Ninja编译oracle oci驱动
数据库·qt·oracle
Java爱好狂.1 小时前
如何用JAVA技术设计一个高并发系统?
java·数据库·高并发·架构设计·java面试·java架构师·java八股文
慌糖1 小时前
读书笔记之MySQL的字符集与比较规则小读
数据库
码农很忙1 小时前
从0到1搭建智能分析OBS埋点数据的AI Agent:实战指南
数据库·人工智能
安当加密1 小时前
Oracle数据库透明加密实践:基于TDE架构的安全加固方案
数据库·oracle·架构
织元Zmetaboard1 小时前
什么是态势感知大屏?
网络·数据库
NineData1 小时前
NineData 支持 DB2 迁移到 PolarDB Oracle
数据库·oracle·ninedata·数据库迁移·数据库迁移工具·信创改造·智能数据管理平台
Saniffer_SH1 小时前
【每日一题】讲讲PCIe链路训练和枚举的前后关系
运维·服务器·网络·数据库·驱动开发·fpga开发·硬件工程
倔强的石头_1 小时前
金融行业数据库选型盘点——Kingbase PLSQL迁移指南
数据库
梓沂1 小时前
解决项目容器启动时MySQL端口检测的问题
数据库·mysql