簡體   English   中英

使用Java 5枚舉作為Velocity變量

[英]Using Java 5 enums as Velocity variables

所有。 我需要在速度模板中使用java 5枚舉,以便我可以編寫類似的東西

public enum Level{
    INFO, ERROR;
}

Velocity template:

#if($var == Level.INFO)
...
#else
...
#end

怎么做到呢? 提前致謝。

實際上,使用name()代替toString()方法更好,因為它准確返回枚舉的值並且是最終的,因此將來不能覆蓋。 所以在速度上你可以使用類似的東西

#if($var.name() == "INFO")

從Velocity 1.5開始,如果與==比較的兩個項目具有不同的類別,它會自動在兩者上執行toString()。 所以試試吧

#if($var == "INFO")

不太好,但一種解決方法是(手動)將您需要的枚舉常量放入Velocity上下文中。

request.setAttribute('level_info', Level.INFO);
request.setAttribute('level_error', Level.ERROR);

然后你可以說

#if ($var == $level_info)

也許更簡單:只需使用枚舉實例的toString()

#if ("$var" == 'INFO') 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM