笔记大纲
- EL简介
- EL基本使用
- EL的11个隐含对象
- EL逻辑运算
- EL代码示例
1.EL简介
Expression Language,定义JSP内置的表达式语言。
(1)作用
用以访问页面的上下文以及不同作用域中的对象,取得对象属性的值,或执行简单的运算或判断操作;
EL表达式用于代替JSP表达式<%= %>
在页面中的输出操作。
(2)特点
EL在得到某个数据时,会自动进行数据类型的转换;
EL表达式仅仅用来读取数据,而不能对数据进行修改;
使用EL表达式输出数据时,如果有则输出数据,如果为null则什么也不输出。
2.EL基本使用
${表达式}
或${域对象.表达式}
注意:el取值,值必须在域中或上下文中。 不指定域对象,会默认从小到大的域进行查询。
注意:EL取对象中的属性值,**严格的说,就是bean中getXXX()中的XXX才是属性。
(1)四大域对象对象及称呼
称呼 | jsp中域对象 | el中的对象 |
---|---|---|
page域 | pageContext | pageScope |
request域 | request | requestScope |
session域 | session | sessionScope |
application域 | application | applicationScope |
说明:在EL表达式中,如果我们使用直接使用属性名例如:${属性名}
,它将会在四个域中由小到大依次查找,顺序是pageScope–>requestScope–>sessionScope–>applicationScope。
3.EL的11个隐含(隐式|内置)对象
以下11个对象在EL表达式中可以直接使用。
对象 | 说明 |
---|---|
pageContext | 与jsp中的pageContext的作用一致 注意:jsp中的pageContext=EL中pageContext+page |
pageScope(域对象) | 获取当前页面 |
requestScope(域对象) | 获取当前请求 |
sessionScope(域对象) | 获取当前会话 |
applicationScope(域对象) | 获取当前应用 |
param(常用对象) | 获取指定的请求参数,与request.getParameter()的作用一致 |
header(常用对象) | 获取请求头中的信息,与request.getHeader()的作用一致 |
cookie(常用对象) | 获取Cookie信息 |
initParm | 获取初始化参数 |
headerValues | 获取请求头中的(多个)信息 |
paramValues | 获取请求参数数组,与request.getParameterValues的作用一致 |
4.EL逻辑运算
(1)类Java运算符
运算符 | 说 明 | 范例 | 结果 |
---|---|---|---|
+ | 加 | $ {1+1} | 22 |
- | 减 | $ {1-1} | 12 |
* | 乘 | $ {1*1} | 85 |
/或div | 除 | $ {18/7}或$ {18 div 7} | 3 |
%或mod | 取余 | $ {18%5}或$ {18mod 5} | 2 |
==或eq | 等于 | $ {1==1}或$ {1eq 1} | true |
!=或ne | 不等于 | $ 1!=1}或$ {1ne 1} | false |
<或lt | 小于 | $ {3<4}或${3lt 4} | true |
>或gt | 大于 | $ {3>4}或${3 gt 4} | false |
<=或le | 小于等于 | $ {3<=4}或$ {3le 4} | true |
>=或ge | 大于等于 | $ {3>=4}或${3 ge 4} | false |
&&或and | 并且 | $ {true&&false}或${ true and false} | false |
!或not | 非 | ``{!true}或$ {not true} | false |
||或or | 或者 | $ {true||false}或$ {true or false} | true |
empty | 是否为空 | $ {empty “”},可以判断字符串、数组、集合的长度是否为0,为0返回true。empty还可以与not或!一起使用。$ {not empty “”} | true |
(2)empty:判断是否为空:${empty}
①null
②""
③空集合|空数组 例如:List<String> list = new ArrayList<String>();
(3)判断非空
①${not empty}
②${!empty}
5.代码示例
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="com.codinglin.el.Student"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//Java代码片段
Student stu =new Student("lindaxia",18,"man");
request.setAttribute("stu", stu);
%>
<!-- request.getAttribute("stu"):返回一个Object对象 -->
JSP表达:<%=((Student)request.getAttribute("stu")).getName()%> <br>
<!-- (请求域)获取对象的属性值可以直接通过“对象.属性名” -->
El表达式:${requestScope.stu.name} <br/>
<%
String str1 = "";
String str2= null;
List<String> list = new ArrayList<String>();
request.setAttribute("s1", str1);
request.setAttribute("s2", str2);
request.setAttribute("list", list);
%>
[判空测试1]str1为空?${empty s1 }<br/>
[判空测试2]str2为空?${empty s2 }<br/>
[判空测试3]list为空?${empty list}<br/>
[判空测试4]5>2?${5>2}
</body>
</html>
页面效果
JSP表达:lindaxia
El表达式:lindaxia
[判空测试1]str1为空?true
[判空测试2]str2为空?true
[判空测试3]list为空?true
[判空测试4]5>2?true
☝上述分享来源个人总结,如果分享对您有帮忙,希望您积极转载;如果您有不同的见解,希望您积极留言,让我们一起探讨,您的鼓励将是我前进道路上一份助力,非常感谢!我会不定时更新相关技术动态,同时我也会不断完善自己,提升技术,希望与君同成长同进步!
☞本人博客:https://coding0110lin.blog.csdn.net/ 欢迎转载,一起技术交流吧!