Velocity:是检查变量是否已定义的任何方法

发布于 2024-10-14 17:06:43 字数 261 浏览 3 评论 0原文

我想将一个模板嵌套包含到其他cont1cont2cont3中。 嵌套模板应该仅隐藏 cont1 的一个特定控件。 在包含到 cont1 之前,我想为一些标志变量 $hideMyControl 赋值。

在嵌套模板内,我想检查 $hideMyControl 是否已赋值。

如何进行这样的检查?

I want to include one template nested into others cont1, cont2, cont3.
And nested template should be hide one specific control for cont1 only.
Before inclusion into cont1 I would like to assign value to some flag variable $hideMyControl.

And inside nested template I would like to check if $hideMyControl is assigned value.

How to perform such check?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

小霸王臭丫头 2024-10-21 17:06:43
#if($hideMyControl)
    // your code
#end

如果定义了 $hideMyControl,您的代码将执行

#if($hideMyControl)
    // your code
#end

If $hideMyControl is defined, your code will execute

祁梦 2024-10-21 17:06:43

您可以使用以下方法执行此操作。

  #if($!{$articleLeader})
      // Perform your operation or the template part you want to show.
  #end

有关详细信息,请参阅 Apache Velocity 参考手册

You can do this using

  #if($!{$articleLeader})
      // Perform your operation or the template part you want to show.
  #end

For more info, see the 'formal reference' section of the Apache Velocity Reference Manual.

一指流沙 2024-10-21 17:06:43
#if($!{hideMyControl} != "")
## do something if $hideMyControl is defined
#end

这在 AWS API Gateway Body 映射模板中适用于我。请参考 Velocity User 中的 安静参考符号指南以获取更多信息。

#if($!{hideMyControl} != "")
## do something if $hideMyControl is defined
#end

This works for me in AWS API Gateway Body Mapping Templates. Please refer to Quiet Reference Notation in Velocity User Guide for more information.

山人契 2024-10-21 17:06:43

就开始使用

#if ($hideMyControl) 
    //do something 
#end 

我从几个月前 ,
然而今天它不再工作了。

我来这里寻求帮助,并注意到一种新的编写方式:

#if($!{$hideMyControl})
   // do something
#end

这段代码有效!

I was using

#if ($hideMyControl) 
    //do something 
#end 

since a few months ago,
however today its not working anymore.

I came here to find help, and noticed a new way of writing it :

#if($!{$hideMyControl})
   // do something
#end

this code works!

酒与心事 2024-10-21 17:06:43

根据严格参考模式的文档可以使用多种结构来检查变量是否已定义。

#if ($foo)#end ## False
#if (! $foo)#end ## 真
#if ($foo && $foo.bar)#end ## False 且 $foo.bar 不会被计算
#if ($foo && $foo == "bar")#end ## False 且 $foo == "bar" 不会被计算
#if ($foo1 || $foo2)#end ## False $foo1 和 $foo2 未定义

所以这段代码适用于我的情况。

#if( !$value )
  // Perform your operation or the template part you want to show.
#end

According to the docs for Strict Reference Mode it is possible to several constructions to check if variable is defined.

#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

So this code works in my case.

#if( !$value )
  // Perform your operation or the template part you want to show.
#end
坚持沉默 2024-10-21 17:06:43

要检查 $hideMyControl 是否在 Velocity 上下文中并且不是布尔“true”值(或“false”):

#if ($hideMyControl && $hideMyControl != true)
    ##do stuff
#end

当然,如果您确实将 $hideMyControl 变量用作布尔类型,则不需要条件的第二部分。

To check if $hideMyControl is in Velocity context and IS NOT boolean 'true' value (or 'false' as well):

#if ($hideMyControl && $hideMyControl != true)
    ##do stuff
#end

Sure, if you really use your $hideMyControl variable as boolean type, you don't need second part of condition.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文