官方文档

​​​​​​FreeMarker 中文官方参考手册 (foofun.cn)

1. freemarker不支持null。

如果值为null会报错,如下:

FreeMarker template error (DEBUG mode; use RETHROW in production!):
The following has evaluated to null or missing:
==> setmeal.sex [in template "mobile_setmeal.ftl" at line 41, column 42]----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
--------
FTL stack trace ("~" means nesting-related):
- Failed at: #if setmeal.sex == "0" [in template "mobile_setmeal.ftl" at line 41, column 37]
----Java stack trace (for programmers):
----
freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:131)
at freemarker.core.EvalUtil.compare(EvalUtil.java:195)
at freemarker.core.EvalUtil.compare(EvalUtil.java:112)
at freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:64)
at freemarker.core.IfBlock.accept(IfBlock.java:46)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visitByHiddingParent(Environment.java:345)

2. 当值为null的处理

2.1 过滤不显示

在属性后面加感叹号即可过滤null和空字符串,如果name为null则为空,不会报错

示例:

Hello${name!}World

结果:HelloWorld

if和??

示例:

<#if age??>年龄不为空:${age}<#else>年龄为空
</#if>

结果:年龄为空

$和!

如果age为null,默认给'0'

示例:

${age!'0'}

结果:0

2.2 设置默认值

示例:

<#assign info={"mobile":"13812345678",'address':'北京市昌平区'} >
${info.mobile999!"null"}

结果:null

2.3 判断是否存在值

示例:

<#assign info={"mobile":"13812345678",'address':'北京市昌平区'} >
${info.mobile999?if_exists}

结果:空,这样显示就没有问题了

2.4 忽略null值

假设前提:userName为null
${userName} error
${userName!} 空白
${userName!'tivon'} tivon

假设前提:user.name为null
${user.name},异常
${(user.name)!},显示空白
${user.name!'vakin'},若user.name不为空则显示本身的值,否则显示vakin
${user.name?default('vakin')},同上
${user.name???string('不为空','为空')},为空

freemarker中对null值的处理相关推荐

  1. 下列有关mysql数据库中的null值_MySQL数据库中与 NULL值有关的问题

    对于SQL的新手,NULL值的概念常常会造成混淆,他们常认为NULL是与空字符串"相同的事.情况并非如此.例如,下述语句是完全不同的: mysql> INSERT INTO my_ta ...

  2. sql 语句中的 NULL值

    今天写了这样的代码 DECLARE @atr NVARCHAR(20) SET @atr = NULL IF(@atr = NULL) BEGIN   PRINT 1 END     原本是想打印出1 ...

  3. mysql中与null值不能比较

    在mysql中,选择某field为不等于某值的时候,使用<>符号.但查bug时发现该field为null的并不能查出来. 查原因为: null值不能与其他值进行比较,只能使用is null ...

  4. mysql null的作用_MySQL中对于NULL值的理解和使用教程

    NULL值的概念是造成SQL的新手的混淆的普遍原因,他们经常认为NULL是和一个空字符串''的一样的东西.不是这样的!例如,下列语句是完全不同的: ?12mysql>INSERT INTO my ...

  5. 如何在 Asp.Net Core MVC 中处理 null 值

    译文链接:https://www.infoworld.com/article/3434624/how-to-handle-null-values-in-aspnet-core-mvc.html 传统的 ...

  6. mysql union null_mysql – 删除SQL中的SQL JOIN和UNION操作符中的NULL值

    [求助]如何仅在字段provider_order中删除NULL值,在我的情况下,表使用JOIN表和UNION 这是我的数据库模式和我的SQL查询 为了清楚地描述这里我附上图片 最佳答案 您不能仅删除行 ...

  7. hive建表设置如果为null_Hive表中的NULL值处理

    1 MySQL 到 Hive 表的sqoop任务把 原本的NULL 变成字符串 'null' 了 alter table ${table_name} SET SERDEPROPERTIES('seri ...

  8. MySql中的NULL值和空值

    定义: 空值:表示一个空字符或零长度的字符串,可以使用空引号""来表示: NULL值:MySql中,NULL表示缺少一个已知或适当的值. 除了整数类型的列外,所有其他类型的列(包括 ...

  9. sql如何处理null值_如何正确处理SQL中的NULL值

    sql如何处理null值 前言 (Preface) A friend who has recently started learning SQL asked me about NULL values ...

最新文章

  1. Android中获取定位经纬度信息
  2. Python 堡垒机介绍
  3. [开源] 基于ABP,Hangfire的开源Sharepoint文件同步解决方案----SuperRocket.SPSync
  4. 21种mysql_让MySQL飞起来!别小看这21种写SQL的好习惯
  5. Memcached命令-存储命令-查找命令-清理命令
  6. 四个程序员恋爱必学的聊天知识点!
  7. 如何测试java定时器_Java--定时器测试程序
  8. 《穿越计算机的迷雾》 李忠 (确实写得非常好,赞一个)
  9. python实现图片识别文字程序
  10. illustrator插件开发向导--基础入门(二)--插件定义--PiPL资源--插件管理--插件入口和消息--加载和卸载--启动和关闭
  11. 圣经中真的藏有密码吗? 摘自台湾权威杂志《科学月刊》
  12. 团队管理21--梯队培养
  13. python小程序之天天向上
  14. lua生成随机数,设置随机数种子
  15. 计算机毕业设计Android安卓旅游结伴景点评论-酒店预订系统app用户相约伴一起游玩
  16. picpick截图处理后关闭未保存的图像时不再询问
  17. 玄学:那些年我为之疯狂的超能力(有音频版)
  18. python清除列表占用内存_对象的Python列表占用了太多内存
  19. 【品牌专场】跨越 X 突破,音视频聚力新机遇
  20. 小明种苹果(100分)

热门文章

  1. Android MediaRecorder录像
  2. oracle大数据应用基础3;
  3. 【原创】基于SSM的果蔬水果蔬菜商城(SSM鲜花果蔬商城毕业设计)
  4. 【SpringBoot框架篇】18.使用Netty加websocket实现在线聊天功能
  5. 系统架构设计笔记(102)—— 反不正当竞争法
  6. php制作留言板ppt,学习制作PHP.MYSQL留言板.ppt
  7. android 快速亮暗屏_Android设备闪屏怎么办?手机屏幕一会亮一会暗怎么办
  8. android 单例模式的使用场景,Android设计模式—单例模式
  9. python 实现栈和队列
  10. 互联网早报:猿辅导正式进军To B教育市场,推出新品牌“飞象星球”