Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Apache Velocity模板访问常量值?_Java_Velocity - Fatal编程技术网

Java 从Apache Velocity模板访问常量值?

Java 从Apache Velocity模板访问常量值?,java,velocity,Java,Velocity,是否可以从Velocity模板访问常量值(即Java类中定义的公共静态最终变量) 我希望能够写出这样的东西: #if ($a lt Long.MAX_VALUE) 但这显然不是正确的语法。Velocity只能使用在其上下文中找到的任何内容,例如 context.put("MaxLong", Long.MAX_VALUE); 由于Velocity的查找工作方式,您无法使用静态或访问Velocity上下文中事物的静态成员(请参见Velocity)。最好的做法是在上下文中添加要显式检查的值 10

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

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

#if ($a lt Long.MAX_VALUE)

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

Velocity只能使用在其上下文中找到的任何内容,例如

context.put("MaxLong", Long.MAX_VALUE);
由于Velocity的查找工作方式,您无法使用静态或访问Velocity上下文中事物的静态成员(请参见Velocity)。最好的做法是在上下文中添加要显式检查的值



10月6日编辑第二眼,似乎可以访问静态成员。有关更多信息,请参见速度。不过,我还没有尝试过这个方法。

有很多种方法

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

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

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

4) 您可以使用来自VelocityTools的


我建议1代表一些值,2代表一些类,3代表许多类和值,如果您已经在使用VelocityTools,否则将使用1或2,则建议4。

对静态类的支持不扩展到静态字段,而只是静态方法。此外,它仅在最新版本1.6-beta1中提供。