EL表达式
一、EL表达式用法
1.算术运算符
+ 注意:在EL表达式中的‘+’只有数学运算的功能,没有连接符的功能,它会试着把运算符两边的操作数转换为数值类型,进而进行数学加法运算,最后把结果输出。若出现${'a'+'b'}则会出现异常。 例如:${6+6}
- 例如:${4-3}
* 例如:${4*3}
/ 例如:${9/3}
2.关系运算符
> 例如:${8>9}
>= 例如:${45>=9}
< 例如:${4<9}
<= 例如:${9<=8}
== 例如:${4==4}
!= 例如:${4!=3}
3.逻辑运算符
&& 例如:${false&&false}
|| 例如:${true||false}
! 例如:${!true}相当于${false}
4.三元运算符
? : 例如:${3>2?'是':'不是'}
在EL表达式中还有一些特殊运算符:
empty 判断EL表达式中的表达式是否为空,例如:${empty sessionScope.user}
. 是我们最常用的,作用相当于执行Bean中的get方法。 例如:${sessionScope.user.userName}意思是:在会话中得到名称为user的Bean对象,通过“.”运算符执行getUserName();方法,返回存放在Bean中的用户名属性的值。
[] 作用和“.”运算符的一样,只不过[]运算符可以执行一些不规则的标识符。 例如:${requestScope.user["score-math"]},这个表达式中有不规则的标识符,是不能使用“.”来访问的。
二、示例
@RequestMapping("/sq-condition/{type}") public ModelAndView sqCondition(@PathVariable(value="type") int type){ Map<String,Object> validateMap=validateSession(sessionTimeOut); if(validateMap.get("SESSION_VALIDATED").toString().equals("false")){ return new ModelAndView(sessionTimeOut); } ModelAndView mv=new ModelAndView("redirect:/pda/stock/sq-condition.html"); mv.addObject("type", type); return mv;
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.wlyd.fmcgwms.util.ehcache.EhcacheUtil"%> <%@page import="com.wlyd.fmcgwms.persistence.beans.EsUser"%> <%@page import="com.wlyd.fmcgwms.util.finals.Const"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ page isELIgnored="false" %> <% String staticUrl = (String) EhcacheUtil.get("staticUrl"); String webRoot = request.getContextPath(); EsUser user = (EsUser) session.getAttribute(Const.SESSION_BACK_USER); %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta charset="utf-8"> <title>智能仓库管理系统</title> <link rel="stylesheet" href="<%=staticUrl%>/pda/css/base.css"> <link rel="stylesheet" href="<%=staticUrl %>/pda/css/style.css"> </head> <body> ${requestScope.type}<br/> <%=request.getAttribute("type")%> <c:if test="${requestScope.type eq 1}"> <div class="header"> 库存查询-2 </div> <ul class="ul-table"> <li><span class="li-th"><em>*</em>数字仓管编码:</span><div class="li-td"><input type="text"></div></li> <li><span class="li-th"><em>*</em>商品条码:</span><div class="li-td"><input type="text"></div></li> </ul> </c:if> <c:if test="${requestScope.type eq 2}"> <div class="header"> 库存查询-4 </div> <ul class="ul-table"> <li><span class="li-th"><em>*</em>数字仓管编码:</span><div class="li-td"><input type="text"></div></li> <li><span class="li-th"><em>*</em>货位条码:</span><div class="li-td"><input type="text"></div></li> </ul> </c:if> </body> </html>