freemark null处理
来源:互联网 发布:昆明广电网络 编辑:程序博客网 时间:2024/06/07 08:16
以下引用官方描述:
引用The FreeMarker template language doesn't know the Java language null at all. It doesn't have null keyword, and it can't test if something is null or not.
1.判断是否存在,通过exists关键字或者"??"运算符。都将返回一个布尔值
user.name?exists
user.name??
<#if user.name?exists>
//TO DO
</#if>
<#if user.age??>
//TO DO
</#if>
2.忽略null值
假设前提:user.name为null
${user.name},异常
${user.name!},显示空白
${user.name!'vakin'},若user.name不为空则显示本身的值,否则显示vakin
${user.name?default('vakin')},同上
${user.name???string(user.name,'vakin')},同上
转自:http://vakinge.javaeye.com/blog/734949
这里所指的丢失包含这两种情况。
不论在哪里引用变量,都可以指定一个默认值来避免变量丢失这种情况,通过在变量名 后面跟着一个!和默认值。就像下面的例子,当user 从数据模型中丢失时,模板将会将 user 的值表示为字符串”Anonymous”。(若user 并没有丢失,那么模板就会表现
出”Anonymous”不存在一样):
<h1>Welcome ${user!"Anonymous"}!</h1>
当然也可以在变量名后面通过放置??来询问FreeMarker 一个变量是否存在。将它和if 指令合并,那么如果user变量不存在的话将会忽略整个问候代码段:
<#if user??><h1>Welcome ${user}!</h1></#if>
关于多级访问的变量,比如 animals.python.price,书写代码:
animals.python.price!0,仅当animals.python存在而仅仅最后一个子变
量price 可能不存在 (这种情况下我们假设价格是0)。如果animals 或者python
不存在,那么模板处理过程将会以“未定义的变量”错误而停止。为了防止这种情况的发生,
可以这样来书写代码 (animals.python.price)!0 。这种情况下当animals 或
python 不存在时表达式的结果仍然是 0 。对于??也是同样用来的处理这种逻辑的:
animals.python.price??对比(animals.python.price)??来看。
- freemark null处理
- freemark null处理
- 认识FreeMark时间格式处理
- 认识FreeMark时间格式处理
- freemark
- freemark
- freemark
- FreeMark
- freeMark
- freemark
- freemark
- freemark
- 关于freeMark转义字符的处理
- 处理freeMark值为空的情况
- [Freemark]freemark常用语法
- null的处理
- oracle null值处理
- FreeMarker中的null处理
- Linux USB 鼠标输入驱动详解
- 为网站设置图标,显示在浏览器标签页
- [转载]NSData 和 NSDate
- CityEngine Web Scene如何在IIS下部署
- socket同步异步
- freemark null处理
- iOS7 状态栏
- 字符串与数字的转换
- Oracle CONNECT BY
- sea.js最佳实践一基础框架搭建
- 硬盘被格式化不见的文件怎么恢复
- VC2010 Working Directory
- STL之list
- 亚信面试疑问