我正在使用速度模板,我想知道我是否可以传入Customer对象,或者是否需要单独传递值?
例如,我可以$customer.name
,$customer.title
等,还是我需要继续$name
,$title
等?谢谢!
答案 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上下文中并引用它们的字段。