【freemaker】之判断是否为空,表达式的使用
测试代码
@Test
public void test05(){
try {
freemakerUtil.fprint(root, "05.ftl",fn+"05.html");
} catch (Exception e) {
e.printStackTrace();
}
}
ftl模版文件
<#--加个感叹号可以解决为空的问题-->
${(emp.group)!}
<#--加上括号,感叹号解决对象导航为空的问题-->
${(emp.group.name)!"group为空或者name为空"}
<br/>
<#--感叹号还可以解决未定义为空的问题-->
${(a.b)!("a.b未定义")}
<br/>
<#--(a.b)?? 判断a.b是否为空-->
<#if (a.b)??>
不为空
<#else>
为空
</#if>
<br/>
${(a.b)???string}
效果

原文档的解释如下:
在不是顶层变量时,默认值操作符可以有两种使用方式:
product.color!"red"
如果是这样的写法,那么在 product 中,当 color 不存在时(返回 ”red” )将会
被处理, 但是如果连 produce 都不存在时将不会处理。 也就是说这样写时变量 product
必须存在,否则模板就会报错。
(product.color)!"red"
这时,如果当不存在时也会被处理,那就是说如果 product 不存在或者 product
存在而 color 不存在,都能显示默认值 ”red” 而不会报错。本例和上例写法的重要区别
在于用括号时,就允许其中表达式的任意部分可以未定义。
【freemaker】之判断是否为空,表达式的使用的更多相关文章
- EL表达式判断不能为空
		前几天在做一个网站的时候遇到一个问题,要判断一个在request或者session域里面的对象是否为空,利用EL表达式,正常思维就是用 <c:if test="${* != null} ... 
- [转]EL表达式判断是否为空,判断是否为空字符串
		原文地址:https://blog.csdn.net/zhaofuqiangmycomm/article/details/79442730 El表达式判断是否为空字符串 ${empty 值} 返回t ... 
- c:if标签--判断不为空和其他的值判断
		用<c:if test=""></c:if>标签时 <c:if test="${sl.chc_status==1 }"> ... 
- Linux shell 判断字符串为空等常用命令
		1.判断字符串为空 if [ -z "$str" ]; then echo "empty string" fi 2.判断文件是否存在 if [ -f /home ... 
- c:if标签判断不为空和其他的值判断
		今天用<c:if test=""></c:if>标签时 <c:if test="${sl.chc_status==1 }"> ... 
- PHP中判断变量为空的几种方法
		判断变量为空,在许多场合都会用到,同时自己和许多新手一样也经常会犯一些错误, 所以自己整理了一下PHP中一些常用的.判断变量为空的方法. 1. isset功能:判断变量是否被初始化本函数用来测试变量是 ... 
- mysql text字段判断是否为空
		mysql text字段判断是否为空 mysql text字段为空select * from `tableName` where `textField` is null or `textField` ... 
- Delphi中的函数指针判断是否为空
		delphi函数指针 只有@@p才代表了函数指针本身的地址 assigned(p) 判断是否为空 或者用 @p=nil 来判断函数指针是不是为空 Delphi中的函数指针实际上就是指针,只是在使用 ... 
- js判断是否为空火undefined是否给undefined加引号
		js判断是否为空为undefined如果判断的是类型则用typeof(),如果其本身就是“undefind”字符窜,则不能这样判断, 这样typeof之后是字符串类型就判断不出来了,这是需要去掉typ ... 
随机推荐
- Yii 检查输入的数据是否已经存在
			只需要在对应的Model文件中的rules方法里面加入 array('username', 'unique', 'message'=>'{attribute}已存在'),//username是需 ... 
- phpStudy
			『软件简介』 该 程序包集成最新的Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend Optimizer+Zend Loader,一次性安装,无须配置即可使 ... 
- iOS基础篇(十五)——UIScrollView的基本用法
			滚动视图(UIScrollView)通常用于显示内容尺寸大于屏幕尺寸的视图. 一.基本属性 1.CGSize contentSize :设置UIScrollView的滚动范围 2.CGPoint co ... 
- HDU 3016 线段树区间更新+spfa
			Man Down Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ... 
- golang——concurrency笔记
			1.主线程结束后将安全退出子线程 
- 搭建Tomcat6源代码阅读环境
			目标:使用MyEclipse8.5阅读Tomcat6源码. 第一步:在MyEclipse8.5中集成SVN插件. 第二步:从地址http://svn.apache.org/repos/asf/tomc ... 
- 小议安卓定位伪造-实战足不出户畅玩Pokemon Go
			本文旨在技术探讨故本文不提供工具,正常玩家请勿模仿,游戏中虚拟位置有封号风险 0x00 安卓定位方式归类 要伪造定位首先要摸清定位到底是如何实现的,首先从广义上来区分安卓的定位方式实际上就gps和ne ... 
- RedHad中yum安装与使用
			yum的安装对于linux来说,是一个福音,至少安装软件来说,非常非常方便,以前使用rpm安装,那个各种依赖,哎,说多了都是泪,现在有这个yum就方便多了. 此处记录redhad的安装.其实我也是借鉴 ... 
- 在线生成CSS样式和兼容的字体格式
			http://www.fontsquirrel.com/tools/webfont-generator 在线生成CSS样式和兼容的字体格式. 
- 从零开始学习Node.js例子二  文本提交与显示
			index.js var server = require("./server"); var router = require("./router"); var ... 
