经常有人问我这个问题,搞的我每次都记不住,上网查资料。今天我就顺便转载
下。哈哈
Velocity判断为null方法:
相信这个问题是很多使用Velocity的朋友所经常碰到的,大家可能非常期望下面这样的代码能够运行:
#if($foo == null)
...
#end
实际上这段代码会报错。这是因为Velocity中对null的支持比较特别。总统上说,判断是否为null有下面几种方法:
1. #if (! $foo) 判断$foo为空,判断非空为 #if ($foo)
2. 使用 #ifnull() 或 #ifnotnull()
#ifnull ($foo)
要使用这个特性必须在velocity.properties文件中加入:
userdirective = org.apache.velocity.tools.generic.directive.Ifnull
userdirective = org.apache.velocity.tools.generic.directive.Ifnotnull
3. 使用null工具判断
#if($null.isNull($foo))
在需要这个判断作为一个判断字句时,比如我要你判断一个集合为null或为空时只能使用这种方式了:
$if ($null.isNull($mycoll) || $mycoll.size()==0)
4. 判断为空的方法
#if("" == $变量名) 或 #if("" != $变量名) 即可
分享到:
相关推荐
判断Velocity变量是否为空 在Velocity中,"空"通常指的是变量的值为null或者空字符串。以下是如何进行空值判断的方法: #### 判断空: 使用逻辑非操作符 `!` 可以检查变量$xxx是否为空,如果为空,则表达式结果...
obj)#else#end`:条件判断语句,用于根据对象是否存在执行不同的代码块。 - `#foreach($info in $list)$info.someList#end`:循环迭代语句,对集合中的每个元素进行操作。 - `#macro(macroName)#end`:定义宏,...
- **判断是否为空**:Velocity提供了方便的空值判断方式。例如,可以使用`#if($null.isNull($orderList.orders) || $orderList.orders.size() == 0)`来判断一个集合是否为空,也可以使用`#if(!$(orderDto))`来判断...
”号用于强制将未定义的变量显示为空。例如,页面中包含 `$msg`,若 `$msg` 未被定义,则页面将显示 `$msg`;通过使用 `$!msg`,即使 `$msg` 未被定义,页面也不会显示任何内容。 - **双引号与单引号**:`"`与`'`的...
当一个变量未定义或者其值为`null`时,默认情况下,Velocity会在生成的文档中显示该变量的名称。为了避免这种情况,可以在变量名前加上感叹号`!`,这样即使变量未定义或为`null`,也不会在文档中显示任何内容。 ...
msg`会在`msg`变量不存在或者值为`null`时显示为空字符串,而`$msg`会直接显示变量名本身。 6. **#parse()** 和 **#include()**:`#include()`用于包含静态内容,不会解析其中的Velocity指令。而`#parse()`不仅包含...
3. 方法调用:Velocity可以直接调用对象的方法,如`$person.getName()`。 4. 文本插值:Velocity允许在字符串中插入变量,如`你好,$name`。 5. 注释:Velocity的注释有两种形式,行内注释`#comment`和块注释`##...
` 符号用于指示如果变量不存在或值为null,应显示为空。例如: ```html $!msg ``` ## 2. 在EasyJWeb中的最佳实践 在EasyJWeb框架中,虽然理论上可以使用Velocity的所有功能,但建议尽量保持模板简洁,避免复杂的...
Velocity 语法大全 Velocity 语法大全是 Apache Velocity 项目的一部分,是一个基于 Java 的模板引擎。Velocity 语法大全提供了一些基本语法和实践指南,帮助开发者快速掌握 Velocity 语法。 基本语法 1. `#` ...
9. **未定义的变量处理**:在Velocity中,如果尝试引用一个未定义的变量,它会被默认视为一个空字符串。 10. **条件语句和循环**:Velocity提供了`#if`、`#else`、`#elseif`来进行条件判断,以及`#foreach`进行循环...
obj) #else #end`:条件判断语句,用于根据对象是否存在输出不同的内容。 3. `#foreach( $info in $list) $info.someList #end`:循环遍历列表`$list`,对每个元素执行相应操作。 例如,在HTML中显示Java对象`msg`...
如果使用 `${name}` 形式,即使变量名拼写错误也不会出现运行时错误,而是被解析为空字符串。这有助于避免潜在的问题。 #### 二、变量赋值及引用详解 在 Velocity 中,可以对变量进行各种类型的赋值操作,包括字符...
在模板中,你可以插入变量和控制结构,这些元素会被 Velocity 解析并替换为相应的值。 - **上下文(Context)**: 上下文是模板和 Java 代码之间的数据交换区,你可以将 Java 对象放入上下文,然后在模板中引用它们...
如果引用的对象不存在,Velocity会默认输出空字符串,防止出现错误。 3. **Properties(属性)**和**Methods(命令)**:可以访问对象的属性和方法,如`$customer.getAddress()`。 4. **属性引用中的属性查找规则**:...
7. **引用安全**: Velocity支持安全引用,即使变量不存在,也不会抛出异常,而是返回空字符串。例如,`$nonExistentVariable`不会导致错误。 8. **宏(Macros)**: 宏是可重用的代码片段,可以提高模板的复用性。...
- `#if($info.imgs)` 和 `#else` 可以用于检查对象是否存在,如图片存在与否的判断。 3. **循环语句**: - `#foreach($info in $list)` 可以遍历集合中的每一个元素并执行相应的操作。 4. **函数调用**: - ...
{email}`时,如果变量为空,它会显示为空字符串而不是变量名。 指令(Directives)是Velocity中执行控制逻辑的关键元素。例如,`#set`指令用于设置变量的值,如`#set ($primate="1")`。赋值的右侧可以是变量引用、...
obj`**:直接输出对象的值,如果对象不存在,将显示为空。 ```html $!msg $!HtmlUtil.doSomething($!msg) ``` 2. **`#if-#else-#end`**:条件判断,通常用于显示或隐藏特定内容。 ```velocity #if($msg) <script>...
obj) #else #end**:条件判断,检查对象是否存在并执行相应操作。 3. **#foreach( $info in $list) $info.someList #end**:遍历集合,对每个元素执行指定操作。 4. **#macro(macroName)#end**:定义宏,虽然不...