質問

Velocity参照を「null」または「undefined」に設定することは可能ですか?

Velocityテンプレート言語リファレンスには

が記載されています
  

#set-参照の値を確立します   形式:

     

# [ { ] set [ } ] ( $ref = [ ", ' ]arg[ ", ' ] )

     

使用法:

     

$ref-割り当てのLHSは、変数参照またはプロパティ参照でなければなりません。

     

arg-割り当てのRHS、argは二重引用符で囲まれている場合に解析されます。   単一引用符で囲まれている場合に解析されます。 RHSがnullと評価された場合、割り当てられません   LHSに。(強調鉱山)

同等の#unsetマクロが見つかりません。

役に立ちましたか?

解決

続きを読む...

  

Velocityの状態に依存   設定済み、通常は不可能   から既存の参照を削除するには   このメカニズムを介したコンテキスト。 (注意   これを変更することで許可できること   Velocity設定の1つ   プロパティ)

VEのデフォルト設定にはプロパティがあります

directive.set.null.allowed = false
  

trueの場合、右側に   無効な参照またはnull値を持つ#set()ステートメントは、   左側をヌルにします。 falseの場合、   左側は同じままです

truesetProperty()を使用してorg.apache.velocity.app.Velocityに変更すると、準備ができました。

他のヒント

参照をfalseに設定できます。 null以外の参照はtrueと見なされるため、参照が設定されているかどうかをテストできます。これはループで役立ちます。

#foreach ($obj in $list)
#set ($x = false)
#set ($x = $obj.maybeNull())
#if ($x)
...
$x
#end
#end

スコープ変数を取得しようとしている場合、#foreach

によって確立されたスコープを悪用できます。
#foreach($localVar in [ 'theValue'])

#end

## localVar will be unset (or returned to previous value) again
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top