我们通过一个实例来进行介绍,假如你的服务端代码返回这么一个 Map 对象:
Map<String,String> sysInfo = new HashMap<String,String>(); sysInfo.put("name", "人人编程网"); sysInfo.put("url", "https://www.hxstrive.com"); sysInfo.put("version", null);
Freemarker 模板代码如下:
<#if sysInfo.version??> <div>系统版本:${sysInfo.version}</div> </#if>
上面代码运行正常,“<div>系统版本:${sysInfo.version}</div>”代码并没有被输出。如果 version 为一个空字符串("")呢?<#if sysInfo.version??>语句将返回 true,输出 <div>系统版本:${sysInfo.version}</div>”代码。
那么怎样在 Freemarker 中判断某个变量是否为 null,是否为空字符串(还包含仅仅只有空格的字符串)呢?
我们可以结合 Freemarker 的“”设置默认值,然后使用“”函数去掉字符串首尾的空白字符,利用“”函数获取字符串的长度。如果长度大于0,则执行 <#if> 语句内部的代码。完整实例如下:
Map<String,String> sysInfo = new HashMap<String,String>(); sysInfo.put("name", "人人编程网"); sysInfo.put("url", "https://www.hxstrive.com"); sysInfo.put("version", "");
Freemarker 模板代码如下:
<#if sysInfo.version?default("")?default("")?trim?length gt 1> <div>系统版本:${sysInfo.version}</div> </#if>
到这里就介绍完了…………希望能帮助到你!!