当前位置:  开发笔记 > 编程语言 > 正文

在Velocity中取消设置变量

如何解决《在Velocity中取消设置变量》经验,为你挑选了2个好方法。

是否可以将Velocity引用设置为"null"或"undefined"?

在Velocity模板语言参考说

#set - 建立参考格式的值:

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

用法:

$ref - 赋值的LHS必须是变量引用或属性引用.

arg - 赋值的RHS,arg如果用双引号括起来解析,如果用单引号括起来则不解析.如果RHS评估为null,则不会将其分配给LHS.(强调我的)

我找不到等效的#unset宏.



1> 小智..:

您可以将引用设置为false.由于非空引用被视为true,因此您可以测试是否设置了引用.这在循环中很有用.

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



2> vartec..:

继续阅读......

根据Velocity的配置方式,通常无法通过此机制从上下文中删除现有引用.(注意,可以通过更改其中一个Velocity配置属性来允许)

在VE默认配置中有属性

directive.set.null.allowed = false

如果为true,则使用带有无效引用或空值的#set()语句的右侧将左侧设置为null.如果为假,左侧将保持不变

将其更改为true使用setProperty()org.apache.velocity.app.Velocity,你准备好去.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有