EL表达式
CreateTime--2017年1月7日15:22:16
Author:Marydon
EL表达式
声明:该总结借鉴了他人的经验(非纯原创)
UpdateTime--2017年1月12日16:22:29
在EL表达式中我们可以使用运算符以达到我们想要的结果,运算符按作用分为以下几种:
1.算术运算符
+ 例如:${6+6} 。
注意:在EL表达式中的‘+’只有数学运算的功能,没有连接符的功能,它会试着把运算符两边的操作数转换为数值类型,进而进行数学加法运算,最后把结果输出。若出现${'a'+'b'}则会出现异常。
- 例如:${4-3}
* 例如:${4*3}
/ 例如:${9/3}
2.关系运算符
> 或者 gt, 例如:${8>9} 或者 ${8 gt 9 }
>= 或者 ge, 例如:${4>=9} 或者 ${4 ge 9 }
< 或者 lt, 例如:${4<9} 或者 ${4 lt 9 }
<= 或者 le, 例如:${9<=8} 或者 ${9 le 8 }
== 或者 eq,
例如:获取后台数据并进行等值比较
<c:if test="${model.FITEMTYPE == 1}"> <xyhsoft:toolbar moduleCode="101301" /> </c:if> <c:if test="${model.FITEMTYPE == 0}"> <xyhsoft:toolbar moduleCode="101302" /> </c:if>
!= 或者 ne, 例如:${4!=3} 或者 ${4 ne 3 }
3.逻辑运算符
&& 或者 and, 例如:${false && false} 或者 ${false and false }
|| 或者 or, 例如:${true || false} 或者 ${true or false }
<c:if test="${param.FVISTYPE=='1' or param.FVISTYPE=='12' or param.FVISTYPE=='1,12' }"> <i:th defW="5%">保障内费用</i:th> </c:if>
! 或者 not, 例如:${!true} 或者 ${not true},相当于${false}
4.三元运算符
? : 即 ${条件表达式?表达式1:表达式2}
例如:通过三元运算符取值
<i:panel title="${model.FITEMTYPE == 1 ? '特殊病种诊疗限制' : '特殊病种用药限制' }"></i:panel>
5.特殊运算符
a."empty" 与"not empty"
判断EL表达式中的表达式是否为空,即:若 user == null || user == "",返回TRUE;否则返回FALSE
例1:
<%request.setAttribute("user","");%> ${not empty user} <!-- 返回值为false -->
例2:
<c:if test="${row['FTYPE']==0}">正常日志</c:if> <c:if test="${row['FTYPE']==1}">错误日志</c:if> <c:if test="${empty row['FTYPE']}">全部类型日志</c:if>
b."."
"." 是我们最常用的,作用相当于执行Bean中的get方法。
例如:${sessionScope.user.userName}
意思是:在会话中得到名称为user的Bean对象,通过“.”运算符执行getUserName();方法,返回存放在Bean中的用户名属性的值。
c."[]"
[]的作用和“.”运算符一样,只不过[]运算符可以执行一些不规则的标识符。
例1:获取集合的两种方式
<!-- 方式一:使用"['']" --> <c:forEach var="row" items="${model['organizes']}" varStatus="s"> <tr class="TableRow" oldclass="TableRow" align="center" key="<c:out value="${row['ORGID']}"></c:out>"> <td nowrap="nowrap" class="TableCell" align="right"> <c:out value="${row['SORTNO']}"></c:out> </td> <td nowrap="nowrap" class="TableCell" align="center"> <!-- 方式二:使用"." --> <c:if test="${row.STATUS==1}">启用</c:if> <c:if test="${row.STATUS==2}">禁用</c:if> </td> </tr> </c:forEach>
这两种方式的不同之处在于:
当需要通过索引号来获取集合中的某个元素时,只能使用"[index]"
如:
<input id="FZJM" name="FZJM" value="${model.data[0].FZJM}" type="hidden"/>
例2:${requestScope.user["score-math"]},这个表达式中有不规则的标识符,是不能使用“.”来访问的。
以下内容为原创
UpdateTime--2017年5月11日08:48:53
6.EL表达式的两个特征
<script type="text/javascript"> window.onload = function () { var bb = document.getElementById("aa").getAttribute('test'); // if ("" == bb) // alert(bb); document.getElementById("cc").innerHTML = bb; var tdValue = document.getElementById("dd").innerHTML; if ("" == tdValue) alert(tdValue); } </script>
<body> <!-- 说明el表达式的两个特征: 1.el表达式取值,为空或不存在时,不报空指针异常; 2.返回的值是空字符串:"" --> <table id="aa" test="${model }"> <tr><td id="dd">${model }</td></tr> </table> <div id="cc"></div> </body>
写在最后
哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!
相关推荐:
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/6524189.html