全部。我需要在速度模板中使用 java 5 枚举,这样我就可以编写类似的东西
公共枚举级别{ 信息,错误; } 速度模板: #if($var == Level.INFO) ... #别的 ... #结尾
怎么做到呢?提前致谢。
实际上,使用 name() 代替 toString() 方法会更好,因为它准确地返回 enum 的值并且是最终的,因此将来不能被覆盖。所以在速度方面你可以使用类似的东西
#if($var.name() == "信息")
As of Velocity 1.5, if the two items being compared with == are of different classes, it automatically does a toString() on both. So try
#if($var == "INFO")
不漂亮,但一种解决方法是(手动)将所需的枚举常量放入 Velocity 上下文中。
request.setAttribute('level_info', Level.INFO);
request.setAttribute('level_error', Level.ERROR);
那你可以说
#if ($var == $level_info)
也许更容易:只需使用toString()
您的枚举实例
#if ("$var" == 'INFO')