我想包括一個模板nested
到其他cont1
,cont2
,cont3
。 嵌套模板應該只隱藏cont1的一個特定控件。 在納入cont1
之前,我想給一些標誌變量$hideMyControl
賦值。速度:是否有任何方法來檢查是否定義變量
而內嵌套模板我想檢查是否爲$hideMyControl
賦值。
如何執行此類檢查?
我想包括一個模板nested
到其他cont1
,cont2
,cont3
。 嵌套模板應該只隱藏cont1的一個特定控件。 在納入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定義,你的代碼將執行
要檢查是否$ hideMyControl是在速度方面和IS NOT布爾 '真' 值(或 '假' 也一樣):
#if ($hideMyControl && $hideMyControl != true)
##do stuff
#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
此代碼的工作!
根據docs for Strict Reference Mode可以通過幾種結構來檢查變量是否被定義。
#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
無論如何,在#if中使用正式和無聲的符號是沒有意義的。只要做#if($ article)##在這裏執行操作#end – 2011-01-28 18:13:57
那麼檢查它是否沒有定義呢? – Snekse 2013-06-21 18:30:24
#if($!{$ articleLeader})沒有工作, #if(!$ {articleLeader})did ... – 2014-12-01 08:41:01