什么是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 个,如下图所示: