当前位置:  开发笔记 > 编程语言 > 正文

从Apache Velocity模板访问常量值?

如何解决《从ApacheVelocity模板访问常量值?》经验,为你挑选了2个好方法。

是否可以从Velocity模板访问常量值(即Java类中定义的公共静态最终变量)?

我希望能够写出这样的东西:

#if ($a lt Long.MAX_VALUE)

但这显然不是正确的语法.



1> Nathan Bubna..:

有很多方法.

1)您可以将值直接放在上下文中.

2)您可以使用FieldMethodizer使类中的所有公共静态字段可用.

3)您可以使用自定义Uberspect实现,其中包含查找顺序中的公共静态字段.

4)您可以使用VelocityTools 的FieldTool.

我推荐1代表几个值,2代表几个类,3代表很多类和值,4代表你已经在使用VelocityTools,否则会使用1或2.



2> Angelo van d..:

Velocity只能使用它在上下文中找到的任何东西,例如

context.put("MaxLong", Long.MAX_VALUE);

由于查找工作的方式,你不能使用静态或访问Velocity上下文中的静态成员(参见Velocity的属性查找规则).最好的办法是在上下文中显式添加要检查的值.


编辑10月6日的第二眼,似乎可以访问静态成员.有关详细信息,请参阅velocity 开发人员指南 - 支持"静态类".不过,我没有试过这个.


对Static类的支持不会扩展到静态字段,只是静态方法.此外,它仅在最新版本1.6-beta1中.
推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有