所有.我需要在速度模板中使用java 5枚举,以便我可以编写类似的东西
public enum Level{
INFO, ERROR;
}
Velocity template:
#if($var == Level.INFO)
...
#else
...
#end
怎么做到呢?提前致谢.
Mak*_*hev 19
实际上,使用name()代替toString()方法,因为它返回enum的值,并且是最终的,因此将来不能覆盖.所以在速度上你可以使用类似的东西
#if($var.name() == "INFO")
从Velocity 1.5开始,如果与==比较的两个项目具有不同的类别,它会自动在两者上执行toString().所以试试吧
#if($var == "INFO")
Run Code Online (Sandbox Code Playgroud)
不太漂亮,但一种解决方法是(手动)将所需的枚举常量放入 Velocity 上下文中。
request.setAttribute('level_info', Level.INFO);
request.setAttribute('level_error', Level.ERROR);
Run Code Online (Sandbox Code Playgroud)
那么你可以说
#if ($var == $level_info)
Run Code Online (Sandbox Code Playgroud)
也许更简单:只需使用toString()您的枚举实例
#if ("$var" == 'INFO')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11376 次 |
| 最近记录: |