我想在其他nested
,cont1
,cont2
中加入一个模板cont3
。
并且嵌套模板应该只隐藏cont1的一个特定控件。
在包含到cont1
之前,我想为某个标志变量$hideMyControl
赋值。
在嵌套模板中,我想检查是否为$hideMyControl
赋值。
如何进行此类检查?
答案 0 :(得分:32)
#if($hideMyControl)
// your code
#end
如果定义了$ hideMyControl,则代码将执行
答案 1 :(得分:16)
您可以使用
执行此操作 #if($!{$articleLeader})
// Perform your operation or the template part you want to show.
#end
有关详细信息,请参阅Apache Velocity Reference Manual的“正式参考”部分。
答案 2 :(得分:5)
#if($!{hideMyControl} != "")
## do something if $hideMyControl is defined
#end
这适用于AWS API网关主体映射模板。有关详细信息,请参阅Velocity用户指南中的Quiet Reference Notation。
答案 3 :(得分:1)
我正在使用
#if ($hideMyControl)
//do something
#end
几个月前,
但是今天它不再起作用了。
我来到这里寻求帮助,并注意到一种新的写作方式:
#if($!{$hideMyControl})
// do something
#end
此代码有效!
答案 4 :(得分:0)
检查$ hideMyControl是否在Velocity上下文中并且IS NOT boolean' true'价值(或'假'以及):
#if ($hideMyControl && $hideMyControl != true)
##do stuff
#end
当然,如果您真的使用$ hideMyControl变量作为布尔类型,那么您不需要第二部分条件。
答案 5 :(得分:0)
根据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