10

すべて。速度テンプレートでjava5列挙型を使用する必要があります。これにより、次のように記述できます。

パブリック列挙型レベル{
    情報、エラー;
}

速度テンプレート:

#if($ var == Level.INFO)
..。
#そうしないと
..。
#終わり

どのようにそれを行うことができますか?前もって感謝します。

4

3 に答える 3

19

実際には、toString() メソッドの代わりに name() を使用することをお勧めします。これは、列挙型の値を正確に返し、最終的なものであるため、将来オーバーライドできないためです。したがって、速度では次のようなものを使用できます

#if($var.name() == "情報")
于 2009-07-10T13:36:10.933 に答える
7

Velocity 1.5 では、== で比較される 2 つの項目が異なるクラスである場合、両方に対して toString() が自動的に実行されます。だから試してみてください

#if($var == "INFO")
于 2009-07-19T05:01:06.237 に答える
3

きれいではありませんが、回避策の1つは、必要な列挙型定数をVelocityコンテキストに(手動で)配置することです。

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

その後、あなたは言うことができます

#if ($var == $level_info)

たぶん簡単:toString()列挙型インスタンスのを使用するだけです

#if ("$var" == 'INFO') 
于 2009-07-10T05:50:09.703 に答える