0

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

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

4

1 回答 1

3

查看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 上下文中并引用它们的字段。

于 2013-06-12T14:06:01.297 回答