0

Velocityに次のJavascriptコードを出力させようとしています。

if ((whichOne+1) <= numCallouts ) {
whichOne = whichOne + 1; } else {
whichOne = 1;
     }

Velocityに>または<を出力させようとすると、それは&gt;として表されます。または&lt ;、これはJavascriptを生成しようとしているので役に立ちません。私はもう試した:

#set ( $gt = ">" )

しかし、それでも&gt;として終わります。

前もって感謝します。

4

3 に答える 3

1

これはデフォルトの動作ではありません。これが発生する理由として考えられる唯一の理由は、Velocity 初期化コードまたはVelocity 初期化コードでイベントがReferenceInsertionEventHandler構成されている場合です。EscapeHtmlReferencevelocity.config

イベントの詳しい情報はこちら

于 2010-04-01T21:34:19.660 に答える
1

ここで説明されているように、代替記号を使用できる場合があります。

http://velocity.apache.org/engine/devel/vtl-reference-guide.html#aifelseifelse_-_Output_conditional_on_truth_of_statements

というわけで使ってみてくださいif (n1 gt n2)

于 2012-08-27T12:32:03.263 に答える
1

私は Velocity で同じ問題を抱えていましたが、問題は、Velocity をサードパーティの組み込み言語として使用していたため、Velocity の設定を変更するアクセス権がなかったことです。

残念ながら、私が見つけることができた唯一の解決策は、大なり/小なりを明示的に使用せずにコードを書き直すことでした。これは確かにひどいことですが、それを機能させることがすべてです...

ある数値が別の数値よりも大きいかどうかを確認しようとしている条件の回避策の例を次に示します。

if (n1 > n2) //Doesn't work because velocity turns this into if (n1 &gt; n2)

if (n1 != n2)
{
    diff = n1 - n2;
    abs = abs(n1 - n2);
    if (diff / abs == 1) //Greater than
    else //if == -1 then less than
}
else //Equal
于 2011-04-07T20:51:48.700 に答える