2

リスト内の検索を高速に実行しようとしています。次のように設定した国コードのリストがあります。

#set($Europe=(['ee','ja','ku','aa' ])  

国がその地域 (この場合はヨーロッパ、またはそうでない場合) からのものであるかどうかを確認するために、リスト内の各項目と比較する変数 ($cntryCode) が既に設定されています。

やった:

#foreach ($cntryCode in $Europe)
#set ($region="Europe")
#end

しかし、うまくいきません。また、私は試しました:

#if ($Europe.contains($cntryCode)
#set($regio="Europe")
#end
#end

しかし、どちらも機能しません。

それが私の最初の問題です。次に、いくつかの国に複数の地域を設定する必要があります...これを行う方法のアイデアはありますか?

4

1 に答える 1

3

あなたが何をしようとしているのか正確にはわかりませんが、私にとっては次のように機能します。つまり、リストを繰り返し処理し、要素が見つかったかどうかを確認します。

## pre-set by some other code
#set($cntrCode = 'ja')

#set($Europe=(['ee','ja','ku','aa' ]) ) 

#foreach ($eu in $Europe)
#if($eu.equals($cntrCode))
    found country code $cntrCode in $Europe
#end
#end

この場合の $Europe は java.lang.ArrayList 型のようです。

#if($Europe.contains($cntrCode))
    found country code $cntrCode in $Europe.class
#end

それ以外の場合は、Velocity ユーザー ガイドやその他のドキュメントにも、Velocity でこのようなことを処理する方法に関する有用な情報が記載されているはずです。

于 2012-11-27T13:08:54.967 に答える