上次写到,在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判断,小坑一枚的更多相关文章

  1. freemarker中对null值问题的处理

    1. freemarker不支持null. 如果值为null会报错. 2.当值为null的处理 1)过滤不显示 Hello ${name!} 在属性后面加感叹号即可过滤null和空字符串 if和”?? ...

  2. SQL 语句中关于 NULL 的那些坑

    问题描述 今天在跟进公司内部测试平台线上问题的时候,发现一个忽略已久的问题. 为了简化问题描述,将其进行了抽象. 有一张数据表qms_branch,里面包含了一批形式如下所示的数据: id name ...

  3. 关于CSS3中transform变换的小坑

    2017年6月30日15:05:46 今天在写一个demo的时候,发现CSS3中transform变换的一个特性. 首先,我先描述一下我发现的情况(问题再现): <div class=" ...

  4. python-django中使用事务以及小坑

    django中使用事务 一.导入事务模块 from django.db import transaction 二.对相应的业务进行事务操作 方式一:为整个函数进行事务操作 @transaction.a ...

  5. freemarker中的null异常处理以及!与??的使用(转)

    原文链接: https://blog.csdn.net/mexican_jacky/article/details/50638062 阅读数:6304 如工程包含: 在user中我们有个角色,那么我们 ...

  6. 关于js中 toFixed()的一个小坑

    作为一名前端,大家都应该知道,toFixed()的作用,toFixed()经常用于前台与后台数据格式的转换,套用下w3c上面的定义: 定义和用法toFixed(n) 方法可把 Number 四舍五入为 ...

  7. Go中变量作用域的小坑

    直接上一实例: package main import "fmt" func main(){ fmt.Println("for start") ; a < ...

  8. 微信小程序中scoll-view的一个小坑

    在微信小程序开发中,有时候swiper-view会出现显示不全的问题,我们可以用scoll-view来把它包裹下,但是要用scoll-view就一定要设置height,而我们经常是在页面中加的这个组件 ...

  9. 数据库中的null,踩坑笔记

    问题来源:查询表中,complete_type 不为2的数据. 我的想法:select * from 表名 where complete_type != '2'  (除了第2条,全部显示,没问题呀) ...

随机推荐

  1. [NPM] Test npm packages locally in another project using npm link

    We will import our newly published package into a new project locally to make sure everything is wor ...

  2. AAC编解码

    AAC编码可以使用faac /** 初始化 @param sampleRate 音频采样率 @param channels 通道数 @param bitSize 音频采样精度 16 */ - (voi ...

  3. cocos2d-x 3.0 游戏关卡滑动 弹动 不会出现黑边效果

    #pragma once #include "cocos2d.h" #include "ShopScene.h" using namespace cocos2d ...

  4. AIX上安装Oracle10G软件

    安装准备 (1)确认系统版本号.内核版本号 # oslevel –r   //查看操作系统版本号 //-08能够安装10g,-09能够安装11g watermark/2/text/aHR0cDovL2 ...

  5. WCF REST (二)

    今天主要写下  POST等其他方式 发送请求 以及 流方式 文件的上传与下载 一.Post 提交数据 先来想下 POST和Get 的不同   Get 方式 我们直接通过 url  来传递参数   先来 ...

  6. 软件——keil的查找,错误,不能跳转到相应的行

    为什么MDK  keil4.7双击搜索结果不能跳转到相应位置 KEIL搜索的时候双击不跳转到相应的位置 为什么keil点击不能跳转到错误处的问题 在keil中,双击Find In Files中某一行, ...

  7. 使用mingw制作dll文件

    使用mingw制作dll文件 安装mingw 准备math.c文件 //math.c #include<stdio.h> int add(int a,int b){ return a+b; ...

  8. Web自动化测试 Selenium+Eclipse+Junit+TestNG+Python

    Selenium+Eclipse+Junit+TestNG+Python 第三步 下载Selenium IDE.SeleniumRC.IEDriverServer.SeleniumClient Dri ...

  9. POJ 3169 Layout (HDU 3592) 差分约束

    http://poj.org/problem?id=3169 http://acm.hdu.edu.cn/showproblem.php?pid=3592 题目大意: 一些母牛按序号排成一条直线.有两 ...

  10. OC学习篇之---Foundation框架中的NSDictionary类以及NSMutableDictionary类

    今天来看一下Foundation框架中的NSDictionary类,NSMutableDictionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和 ...