
什么是EL表达式?
EL是Expression Language的缩写,是一种在JSP页面获取数据的简单方式,只能获取数据不能设置数据。
为什么需要EL表达式?
在JSP开发中为了获取Servlet域对象中存储的数据,需要书写很多的Java代码,这样会使JSP页面看起来十分的混乱,难以维护。
为此,在JSP2.0规范中提供了EL表达式。
EL表达式的语法?
EL 表达式语法以${开头,以}结束,中间为合法的表达式。
EL 表达式语法如下:
${EL表达式}1复制代码类型:[java]
例如以下Java表达式和El表达式的作用相同:
Java表达式:
<%=request.getParameter(“username”)%>
EL表达式:
${param.username}
比较以上两种表达式的形式,都用于输出请求参数username,可以看出,EL表达式使得JSP文件的穿件人员能用更加简单的语法来访问数据。
EL表达式的运算?
EL 表达式定义了许多运算符,如算术运算符、比较运算符、逻辑运算符等,使用这些运算符,可以使 JSP 页面更加简洁。
1)关系运算

2)逻辑运算

3)算术运算

4)empty运算符
EL表达式中的empty运算符用于判断某个对象是否为null或””,结果为布尔类型,其基本的语法格式如下:
${empty var}
empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。
代码示例:
<body>
<%
// 1、值为 null 值的时候,为空
request.setAttribute("emptyNull",null);
//
// 2、值为空串的时候,为空
request.setAttribute("emptyStr","");
// 3、值是 Object 类型数组,长度为零的时候
request.setAttribute("emptyObj",new Object[]{});
// 4、list 集合,元素个数为零
request.setAttribute("emptyList",new ArrayList<String>());
// 5、map 集合,元素个数为
request.setAttribute("emptyMap",new HashMap<String,Object>());
%>
${empty emptyNull}<br/>
${empty emptyStr}<br/>
${empty emptyObj}<br/>
${empty emptyList}<br/>
${empty emptyMap}<br/>
</body>
5)条件表达式
EL表达式中条件运算符用于执行某种条件判断,类似于Java中的if-else语句,其语法格式如下:
${A?B:C}
表达式A的计算结果为布尔类型:
- 如果表达式A的计算结果为true,就执行表达式B,并返回B的值;
- 如果表达式A的计算结果为false,就执行表达式C,并返回C的值;
6)三元运算
语法格式如下:
表达式 1?表达式 2:表达式 3
如果表达式 1 的值为真,返回表达式 2 的值,如果表达式 1 的值为假,返回表达式 3 的值。
代码示例:
<body>
<%
//1、值为null值时
request.setAttribute("emptyNull", null);
//2、值为空串时
request.setAttribute("emptyStr", "");
//3、值是Object类型数组,长度为零的时候
request.setAttribute("emptyArr", new Object[]{});
//4、list集合,元素个数为零
List<String> list = new ArrayList<>();
request.setAttribute("emptyList", list);
//5、map集合,元素个数为零
Map<String,Object> map = new HashMap<String, Object>();
request.setAttribute("emptyMap", map);
//6、其他类型数组长度为0
request.setAttribute("emptyIntArr", new int[]{});
%>
${ empty emptyNull } <br/>
${ empty emptyStr } <br/>
${ empty emptyArr } <br/>
${ empty emptyList } <br/>
${ empty emptyMap } <br/>
${ empty emptyIntArr} <br/>
<%-- 三元运算 --%>
${ 12 != 12 ? "相等":"不相等" }
</body>
EL表达式隐含对象
JSP有9个隐含对象,而EL也有自己的隐含对象,EL隐含对象总共有11 个,如下图所示:

mikechen睿哥
10年+一线大厂架构实战经验,就职于阿里、百度等一线大厂,操盘多个亿级大厂核心项目。