Velocity可以处理对象或只是变量吗?

时间:2013-06-12 14:00:17

标签: java velocity

我正在使用速度模板,我想知道我是否可以传入Customer对象,或者是否需要单独传递值?

例如,我可以$customer.name$customer.title等,还是我需要继续$name$title等?谢谢!

1 个答案:

答案 0 :(得分:3)

查看Velocity user guide,有一节介绍方法,其中显示了在对象上调用方法的不同方法:

  

方法

     

方法在Java代码中定义并且能够执行   有用的东西,比如运行计算或到达   决策。方法是由前导“$”组成的引用   字符遵循VTL标识符,后跟VTL方法体。一个   VTL方法体由VTL标识符后跟左边组成   括号字符(“(”),后跟可选参数列表,   后跟右括号字符(“)”)。这些是例子   VTL中的有效方法引用:

     

$ customer.getAddress()$ purchase.getTotal()$ page.setTitle(“我的家   页面“)$ person.setAttributes([”Strange“,”Weird“,”Excited“])

以下是关于引用对象属性的部分:

  

物业查询规则

     

如前所述,属性经常   引用父对象的方法。速度非常聪明   确定哪种方法对应于所请求的财产。它   根据几个已建立的命名尝试不同的替代方案   约定。确切的查找顺序取决于是否   属性名称以大写字母开头。对于小写名称,   例如$ customer.address,序列是

getaddress()
getAddress()
get("address")
isAddress()
     

对于像$ customer.Address这样的大写属性名称,它略有不同   不同:

getAddress()
getaddress()
get("Address")
isAddress()

所以是的,您可以将对象放在Velocity上下文中并引用它们的字段。