Java 如何以编程方式解析apache velocity变量?

Java 如何以编程方式解析apache velocity变量?,java,velocity,Java,Velocity,应使用Velocity文档来解析变量v#setdirective或具有相应属性的POJO。有没有办法提供自定义解析器?例如,当模板中出现$client时,解析器转到数据库,检索client实体,获取名称字段并填写$client占位符。velocity模板引擎是否支持此类扩展?您可以尝试使用ReferenceInsertionHandler,但其目的是过滤(即以某种方式修改)显示的值,而不是从velocity引用中获取值 这样的任务通常由上下文对象本身完成。也就是说,$client可以包含一个对象

应使用Velocity文档来解析变量v
#set
directive或具有相应属性的POJO。有没有办法提供自定义解析器?例如,当模板中出现
$client
时,解析器
转到数据库,检索
client
实体,获取
名称
字段并填写
$client
占位符。velocity模板引擎是否支持此类扩展?

您可以尝试使用ReferenceInsertionHandler,但其目的是过滤(即以某种方式修改)显示的值,而不是从velocity引用中获取值

这样的任务通常由上下文对象本身完成。也就是说,
$client
可以包含一个对象,该对象知道如何在其
toString()方法上获取并返回客户端的名称

您还可以将对象与getter和setter一起使用,这样您就可以编写
$client.name
,只要
$client.address
。你会让你自己做点什么的。作为旁注,在速度方面,这项任务的难度有所降低