Freemarker中的null判断,小坑一枚
上次写到,在Freemarker中日期转换,可以提取成工具方法。主要是Freemarker对null的处理方式,非常坑爹。只要一个对象或对象的属性为null,就报错,虽然不影响界面显示,但控制台和日志总是打印“错误信息”,很是不爽。所以,想写方法判断对象是否为null,再做正确的显示。
上次写的2个Freemarker函数,实际过程中只用到了第1个,正常。
把int类型的日期转换成字符串
<#function number_to_ymdhms date>
<#if date != null>
<#setting datetime_format="yyyy-MM-dd hh:mm:ss"/>
<#return date?number_to_datetime/>
</#if>
<#return ""/>
</#function>
把date类型的日期转换成字符串
<#function date_to_ymdhms date>
<#if date != null>
<#return date?string('yyyy-MM-dd hh:mm:ss')/>
</#if>
<#return ""/>
</#function>
后来,项目中用到了第2个方法,但是日期没有显示出来,debug发现date不是null,这是为什么呢?
最后确定,date != null 有问题。
结论:number类型(当然包number类型的日期),可以与null比较,即date!=null.
而对象类型,不能直接与null进行比较,应该用date?exists (复数) 。
date类型比较:
<#function date_to_ymdhms date>
<#if date?exists>
<#return date?string('yyyy-MM-dd hh:mm:ss')/>
</#if>
<#return ""/>
</#function>
Freemarker中的null判断,小坑一枚的更多相关文章
- freemarker中对null值问题的处理
1. freemarker不支持null. 如果值为null会报错. 2.当值为null的处理 1)过滤不显示 Hello ${name!} 在属性后面加感叹号即可过滤null和空字符串 if和”?? ...
- SQL 语句中关于 NULL 的那些坑
问题描述 今天在跟进公司内部测试平台线上问题的时候,发现一个忽略已久的问题. 为了简化问题描述,将其进行了抽象. 有一张数据表qms_branch,里面包含了一批形式如下所示的数据: id name ...
- 关于CSS3中transform变换的小坑
2017年6月30日15:05:46 今天在写一个demo的时候,发现CSS3中transform变换的一个特性. 首先,我先描述一下我发现的情况(问题再现): <div class=" ...
- python-django中使用事务以及小坑
django中使用事务 一.导入事务模块 from django.db import transaction 二.对相应的业务进行事务操作 方式一:为整个函数进行事务操作 @transaction.a ...
- freemarker中的null异常处理以及!与??的使用(转)
原文链接: https://blog.csdn.net/mexican_jacky/article/details/50638062 阅读数:6304 如工程包含: 在user中我们有个角色,那么我们 ...
- 关于js中 toFixed()的一个小坑
作为一名前端,大家都应该知道,toFixed()的作用,toFixed()经常用于前台与后台数据格式的转换,套用下w3c上面的定义: 定义和用法toFixed(n) 方法可把 Number 四舍五入为 ...
- Go中变量作用域的小坑
直接上一实例: package main import "fmt" func main(){ fmt.Println("for start") ; a < ...
- 微信小程序中scoll-view的一个小坑
在微信小程序开发中,有时候swiper-view会出现显示不全的问题,我们可以用scoll-view来把它包裹下,但是要用scoll-view就一定要设置height,而我们经常是在页面中加的这个组件 ...
- 数据库中的null,踩坑笔记
问题来源:查询表中,complete_type 不为2的数据. 我的想法:select * from 表名 where complete_type != '2' (除了第2条,全部显示,没问题呀) ...
随机推荐
- APM2.8 Rover 自己主动巡航车设计(固件安装和设置)
1.2 APM2.8软件安装与固件下载 下载Mission Planner这个地面基站软件,这里介绍的是windoews平台下的,在MAC或者linux下能够使用QGroundCont基于QT编写的地 ...
- percona-toolkit的安装及简单介绍
MySQL数据库是轻量级.开源数据库的佼佼者.其功能和管理,健壮性与Oracle相比还是有相当的差距.因此有非常多功能强大第三方的衍生产品,如percona-toolkit,XtraBackup等等. ...
- 简单的横向ListView实现(version 4.0)
这个版本号的博客写起来颇费口舌.有些代码自己语言组织能力有限,感觉描写叙述起来非常费劲,前前后后改了五六遍稿子还是不尽人意 ,只是我还是坚持写出来自己当初的思路,假设看得不明确的地方我在文章最后仍然会 ...
- Android中实现整个视图切换的左右滑动效果
Android中提供了一个Gallary,可以实现图片或者文本的左右滑动效果. 如何让整个视图都能实现左右滑动,达到类似于Gallary的效果呢?可以直接用一个开源的ViewFlow来实现. 项目 ...
- Docker---(8)Docker启动Redis后访问不了
原文:Docker---(8)Docker启动Redis后访问不了 版权声明:欢迎转载,请标明出处,如有问题,欢迎指正!谢谢!微信:w1186355422 https://blog.csdn.net/ ...
- COGS——C66. [HAOI2004模拟] 数列问题
http://www.cogs.pro/cogs/problem/problem.php?pid=66 ★☆ 输入文件:dfs3.in 输出文件:dfs3.out 简单对比 时间限制:1 ...
- ARCGIS刷新的故事
转自原文章ARCGIS部分刷新 1, IActiveView.Refresh 全局刷新,即重绘地图中的所有内容,是效率最低的一种刷新方法.当数据量大时非常耗时.所以除非绝对必要,一般推荐使用IActi ...
- windows下安装emscripten
windows下安装emscripten windows下安装emscripten需要python.git环境 python安装 git安装 开始安装 # 1.克隆emsdk git clone ht ...
- ab压测返回结果解析
Server Software: Apache/2.2.25 (服务器软件名称及版本信息)Server Hostname: localhost (服务器主机名)Server ...
- 程序员的底色(IDE color scheme、CLI 命令行界面)
1. IDE ⇒ Dracula(吸血鬼) IDE:PyCharm,VS2013: sublime:color scheme,Monokai: 2. CLI 命令行界面 $ setterm -inve ...