hi, all. I need to use java 5 enum in velocity template, so that I could write something like
public enum Level{ INFO, ERROR; } Velocity template: #if($var == Level.INFO) ... #else ... #end
How can it be done? Thanks in advance.
hi, all. I need to use java 5 enum in velocity template, so that I could write something like
public enum Level{ INFO, ERROR; } Velocity template: #if($var == Level.INFO) ... #else ... #end
How can it be done? Thanks in advance.
Not pretty, but one workaround would be to (manually) place the enum constants that you need into the Velocity context.
request.setAttribute('level_info', Level.INFO);
request.setAttribute('level_error', Level.ERROR);
Then you could say
#if ($var == $level_info)
Maybe easier: Just use the toString()
of your enum instance
#if ("$var" == 'INFO')
Actually, instead of toString() method it would be better to use name(), as it returns exactly the value of enum and is final hence can't be overriden in future. So in velocity you can use something like
#if($var.name() == "INFO")
Hi,
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")