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

时间:2016-02-10 14:26:24

标签: java velocity

应使用Velocity文档tells解决变量#set derective或POJO与相应属性的问题。有没有办法提供客户解析器?例如。当$client出现在模板中时,解析go到数据库,检索Client实体,获取name字段并填写$client占位符。 velocity模板引擎是否支持此类扩展?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用ReferenceInsertionHandler,但它的目的是过滤(也就是修改,以某种方式改变)显示的值,而不是来自Velocity引用的获取值。

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

您还可以将对象与getter和setter一起使用,这样只要$client.name就可以编写$client.address。你会让自己做某种ORM。作为旁注,有existing libraries缓解了Velocity的这项任务。