将对象作为“root”放到VelocityContext中

时间:2017-06-22 08:02:56

标签: java velocity

我想访问模板中某个模型类的所有属性。如果我做

VelocityContext context = new VelocityContext();
context.put("model", new MyModel());

MyModel就像

public class MyModel {
    private String propertyA;
    private String propertyB;
    public String getPropertyA() { return propertyA; }
    public String getPropertyB() { return propertyB; }
}

然后我需要在每次访问它的属性时指定模型的别名。

This is my template with properties like $model.propertyA and $model.propertyB.

我想要实现的是模板变量不需要指定model.作为特定上下文成员的前缀,如下所示:

This is my template with properties like $propertyA and $propertyB.   

每个变量都应该被视为类型为MyModel的给定“根”对象的属性。这是可能的,如果可以,怎么样?

1 个答案:

答案 0 :(得分:1)

Velocity无法做到这一点 - 无法指定'默认'对象。只有在对象名称前面,才能正确解析属性和方法引用。