我现在正在使用速度模板,我想知道是否可以传入 Customer 对象,或者是否需要单独传入值?
例如,我可以做$customer.name
,$customer.title
等还是需要继续做$name
,$title
等?谢谢!
查看Velocity 用户指南,有一个关于方法的部分,其中显示了在对象上调用方法的不同方式:
方法
方法在 Java 代码中定义,能够做一些有用的事情,比如运行计算或做出决定。方法是由前导“$”字符后跟 VTL 标识符和 VTL 方法体组成的引用。VTL 方法体包含一个 VTL 标识符,后跟一个左括号字符(“(”),后跟一个可选参数列表,后跟右括号字符(“)”)。以下是 VTL 中有效方法引用的示例:
$customer.getAddress() $purchase.getTotal() $page.setTitle("我的主页") $person.setAttributes(["Strange", "Weird", "Excited"])
接下来是关于引用对象属性的部分:
属性查找规则
如前所述,属性通常是指父对象的方法。在确定哪个方法对应于请求的属性时,Velocity 非常聪明。它根据几个既定的命名约定尝试不同的替代方案。确切的查找顺序取决于属性名称是否以大写字母开头。对于小写名称,例如 $customer.address,序列为
getaddress() getAddress() get("address") isAddress()
对于像 $customer.Address 这样的大写属性名称,它略有不同:
getAddress() getaddress() get("Address") isAddress()
所以是的,您可以将对象放在 Velocity 上下文中并引用它们的字段。