1つのテンプレートnested
を他のテンプレートcont1
、cont2
、cont3
に含めたいです。ネストされたテンプレートは、cont1に対してのみ1つの特定のコントロールを非表示にする必要があります。 cont1
に含める前に、いくつかのフラグ変数$hideMyControl
に値を割り当てたいと思います。
ネストされたテンプレート内で、$hideMyControl
に値が割り当てられているかどうかを確認したいと思います。
そのようなチェックを行う方法は?
あなたはこれを使うことができます
#if($!{$articleLeader})
// Perform your operation or the template part you want to show.
#end
詳細については、 Apache Velocity Reference Manual の「正式なリファレンス」セクションを参照してください。
#if($hideMyControl)
// your code
#end
$ hideMyControlが定義されている場合、コードが実行されます
#if($!{hideMyControl} != "")
## do something if $hideMyControl is defined
#end
これは、AWS APIゲートウェイボディマッピングテンプレートで機能します。詳細については、Velocityユーザーガイドの Quiet Reference Notation を参照してください。
使っていた
#if ($hideMyControl)
//do something
#end
数か月前から、しかし今日はもう機能していません。
私はヘルプを見つけるためにここに来て、それを書く新しい方法に気づきました:
#if($!{$hideMyControl})
// do something
#end
このコードは機能します!
厳密参照モードのドキュメント によると、変数が定義されているかどうかを確認するために、いくつかの構成が可能です。
#if ($foo)#end ## False #if ( ! $foo)#end ## True #if ($foo && $foo.bar)#end ## False and $foo.bar will not be evaluated #if ($foo && $foo == "bar")#end ## False and $foo == "bar" wil not be evaluated #if ($foo1 || $foo2)#end ## False $foo1 and $foo2 are not defined
したがって、このコードは私の場合に機能します。
#if( !$value )
// Perform your operation or the template part you want to show.
#end
$ hideMyControlがVelocityコンテキストにあり、IS NOTブール値の「true」値(または「false」も同様))かどうかを確認するには:
#if ($hideMyControl && $hideMyControl != true)
##do stuff
#end
もちろん、実際に$ hideMyControl変数をブール型として使用している場合は、条件の2番目の部分は必要ありません。