原文地址:http://hi.baidu.com/dalianitjingying/blog/item/9e41404431c9a884b3b7dcc5.html
http://lionbule.iteye.com/blog/621192
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("" != $变量名) 即可
分享到:
相关推荐
#### 方法二:`$null.isNull()` 这是一个更直接的检查方式,无需额外配置。推荐使用此方法,特别是当判断集合对象是否为null时,非常实用。例如: ```velocity #if($null.isNull()) 变量为null #else 变量不为...
- **directive.set.null.allowed**:是否允许设置空值,默认为`false`。这对于确保数据完整性非常关键。 ##### 2.4 include配置 - **directive.include.output.errormsg.start**:错误信息提示开始字符串,默认为`...
- **Velocity Context**:存储模板中使用的变量和方法,它是模板和Java对象之间的桥梁。 - **Directives**:如`#set`, `#if`, `#foreach`等,用于控制模板的逻辑流程。 - **Macros**:可重用的模板片段,类似于...
5. **条件语句**:使用`#if($foo)`...`#end`结构来实现条件判断,其中`$foo`为null或布尔型的false时执行`#else`部分。 6. **逻辑运算符**:包括等于`==`、与`&&`、或`||`和非`!`。 7. **循环语句**:`#foreach($...
msg`会在`msg`变量不存在或者值为`null`时显示为空字符串,而`$msg`会直接显示变量名本身。 6. **#parse()** 和 **#include()**:`#include()`用于包含静态内容,不会解析其中的Velocity指令。而`#parse()`不仅包含...
《使用EasyUI Combobox在Struts2和Velocity框架下的实现》 在现代Web开发中,SSH(Struts2、Spring、Hibernate)框架被广泛应用于构建企业级应用,而jQuery和EasyUI提供了丰富的前端组件,使得界面设计更加简洁、...
本文将详细介绍Velocity的语法规则和使用方法。 变量 在Velocity中,变量是弱类型的,可以使用#set指令定义变量。例如: ``` #set($name = "hello") ``` Velocity中变量总是以一个大写或者小写的字母开始的,因此...
- `#if($condition)`:条件判断,如果条件为真,则执行块内的语句。 - `#foreach($item in $list)`:循环遍历集合。 **3. 使用Velocity** 在Java项目中,要使用Velocity,首先需要添加Velocity的依赖库,然后创建...
Velocity 也可以为 Turbine web 开发架构提供模板服务(template service)。Velocity+Turbine 提供一个模板服务的方式允许一个 web 应用以一个真正的 MVC 模型进行开发。 Velocity 语法基础变量: 1. 变量的定义...
### 使用Velocity进行动态模板渲染的关键知识点 #### 一、Velocity简介与环境搭建 **Velocity**是一种基于Java的模板引擎,用于生成动态HTML页面或其他文本格式的文档。它提供了一种简单而强大的方式来分离业务...
2. **指令使用**: 常用的Velocity指令包括`#set`(设置变量)、`#if`(条件判断)、`#foreach`(循环)和`#macro`(定义宏)等。 3. **变量引用**: 变量引用通常以`$`开头,例如`$variable`。对于null或不存在的...
`用于表示当变量不存在或值为null时显示为空,如`$!msg`。 **三、变量操作** 1. **变量定义**:Velocity是弱类型语言,定义变量使用`#set`,如`#set($directoryRoot = "www")`。变量名可以包含字母、数字、连字符和...
- **转换规则**:无论原始类型如何,所有引用都会被转换为 String 类型进行显示,这通常是通过调用 `toString()` 方法实现的。 ##### 2. 指令 (Directive) - **定义**:以 `#` 开头,用于控制模板的行为,如设置...
当一个变量未定义或者其值为`null`时,默认情况下,Velocity会在生成的文档中显示该变量的名称。为了避免这种情况,可以在变量名前加上感叹号`!`,这样即使变量未定义或为`null`,也不会在文档中显示任何内容。 ...
Velocity是一个Java模板引擎,它允许开发者将逻辑和表示分离,使得网页设计更加清晰,而Spring框架则为Java应用程序提供了一个全面的依赖注入和服务层。 在Spring框架中集成Velocity,首先你需要在项目的类路径下...
- **执行条件**: 当`$foo`为`null`或`Boolean`对象的`false`值时执行。 ##### 2.6 逻辑运算符 - **相等**: `==` - **逻辑与**: `&&` - **逻辑或**: `||` - **逻辑非**: `!` ##### 2.7 循环语句 - **基本语法**: ...
例如,可以使用`#if($null.isNull($orderList.orders) || $orderList.orders.size() == 0)`来判断一个集合是否为空,也可以使用`#if(!$(orderDto))`来判断单个对象是否为空。 #### 四、数值与日期格式化 - **数值与...
- 如果右侧值为 `null`,则左侧值保持不变。 - 在 Velocity 模板中,未定义的变量会被当作字符串处理。 - Velocity 不会将引用解析为对象的实例变量。例如,`$foo.Name` 被解释为调用 `getName()` 方法。 #### 2. ...
10. **条件语句和循环**:Velocity提供了`#if`、`#else`、`#elseif`来进行条件判断,以及`#foreach`进行循环操作。 11. **宏定义与调用**:`#macro`用于定义宏,而`#invoke`则用来调用已定义的宏,这对于代码复用和...
2. **空值(NULL)检查**:在进行运算前,确认变量是否为NULL,因为NULL与任何值进行运算都会导致错误。 3. **自定义工具类**:有时,为了扩展VTL的功能,开发者会创建自定义工具类,如果减法运算在其中,可能存在...