freemaker为null和为空串""的判断

简介: freemaker为null和为空串""的判断

freemaker中判断值是否为null:


<#if ${flag.a??}>
  flag.a不为null的处理
<#else>
  flag.a为null的处理
</#if>


freemaker中判断值是否为"":


<#if ${flag.a!""}>
  flag.a不为""的处理
<#else>
  flag.a为""的处理
</#if>


ava代码:

Map<String, Object> flag = new HashMap<>();
Date a = null;
flag.put("a", new Date());
flag.put("b", a);
flag.put("c", "");


freemaker页面代码:

[#if flag.a??]
  时间不为空的值:${flag.a?string('yyyy-MM-dd')}
[#else]
  时间不为空的值:1
[/#if]
<br><br>
[#if flag.b??]
  时间为null的值:${flag.b?string('yyyy-MM-dd')}
[#else]
  时间为null的值:2
[/#if]
<br><br>
[#if flag.c?? && flag.c!""]
  时间为""的值:${flag.b?string('yyyy-MM-dd')}
[#else]
  时间为""的值:3
[/#if]
<br><br>
[#if flag.c??]
  时间为""的值:${flag.b?string('yyyy-MM-dd')}
[#else]
  时间为""的值:3
[/#if]


数据结果

时间不为空的值:2019-01-24 
时间为null的值:2 
时间为""的值:3 
时间为""的值:此处报错,报错信息:

严重: Servlet.service() for servlet [SpringMVC] in context with path [] threw exception [Request processing failed; nested exception is freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:

==> flag.b [in template “bulkxl/classWorkOrder/add.ftl” at line 44, column 19]


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: ${flag.b?string(“yyyy-MM-dd”)} [in template “bulkxl/classWorkOrder/add.ftl” at line 44, column 17]

----] with root cause


目录
相关文章
|
Oracle 关系型数据库 MySQL
字符串判空 isnotempty & isnotblack/NULL 和空串的区别
业务中经常会有判空处理,一次忘记判空就应该一次祭天。
94 0
|
存储 安全 Java
==和equals判等、空串和null串、字符串常用API(二)
==和equals判等、空串和null串、字符串常用API(二)
308 0
==和equals判等、空串和null串、字符串常用API(二)
|
存储 Java 编译器
==和equals判等、空串和null串、字符串常用API(一)
==和equals判等、空串和null串、字符串常用API(一)
233 0
==和equals判等、空串和null串、字符串常用API(一)
|
Java 关系型数据库 Oracle
|
SQL Oracle 关系型数据库
MySQL中的NULL和空串比较
今天接到一个MySQL工单,是执行几条SQL语句。我一看就感觉这语句比较有意思。 语句大体是这样的: update app_code_value set channel_id=null where task_id=378 and channel_id=''; update app_code_value set channel_id=null where task_id=379 and channel_id=''; 因为对Oracle熟悉一些,所以总是喜欢用Oracle的思维来看很多问题,大多数的情况下是相通的,但是还是有一些差别之处。
1207 0
|
7月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之从MySQL同步数据到Doris时,历史数据时间字段显示为null,而增量数据部分的时间类型字段正常显示的原因是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
SQL 关系型数据库 MySQL
python在mysql中插入或者更新null空值
这段代码是Python操作MySQL数据库的示例。它执行SQL查询从表`a_kuakao_school`中选取`id`,`university_id`和`grade`,当`university_id`大于0时按升序排列。然后遍历结果,根据`row[4]`的值决定`grade`是否为`NULL`。若不为空,`grade`被格式化为字符串;否则,设为`NULL`。接着构造UPDATE语句更新`university`表中对应`id`的`grade`值,并提交事务。重要的是,字符串`NULL`不应加引号,否则更新会失败。
170 2
|
4月前
|
SQL 关系型数据库 MySQL
在 MySQL 中使用 IS NULL
【8月更文挑战第12天】
668 0
在 MySQL 中使用 IS NULL
|
4月前
|
SQL 关系型数据库 MySQL
mysql不等于<>取特定值反向条件的时候字段有null值或空值读取不到数据
对于数据库开发的专业人士来说,理解NULL的特性并知道如何正确地在查询中处理它们是非常重要的。以上所介绍的技巧和实例可以帮助你更精准地执行数据库查询,并确保数据的完整性和准确性。在编写代码和设计数据库结构时,牢记这些细节将有助于你避免许多常见的错误,提高数据库应用的质量与性能。
144 0
下一篇
DataWorks