【java】JSP --- EL表达式

好久不见. 提交于 2020-01-17 06:54:51

1. 什么是EL表达式

EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。

2. EL表达式的作用

替换和简化jsp页面中java代码的编写,用来代替<%=…%>

3. EL表达式的语法

  • ${表达式}

3.1 忽略EL表达式

* jsp默认支持el表达式的。如果要忽略el表达式
	1. 设置jsp中page指令中:isELIgnored="true" 忽略当前jsp页面中所有的el表达式
	2. \${表达式} :忽略当前这个el表达式

3.2 EL表达式的使用

3.2.1 运算

  • 运算符:
操作符 描述
. 访问一个Bean属性或者一个映射条目
[] 访问一个数组或者链表的元素
( ) 组织一个子表达式以改变优先级
+
- 减或负
*
/ or div
% or mod 取模
== or eq 测试是否相等
!= or ne 测试是否不等
< or lt 测试是否小于
> or gt 测试是否大于
<= or le 测试是否小于等于
>= or ge 测试是否大于等于
&& or and 测试逻辑与
|| or or 测试逻辑或
! or not 测试取反
empty 测试是否空值
1. 算数运算符: + - * /(div) %(mod)
2. 比较运算符: > < >= <= == !=
3. 逻辑运算符: &&(and) ||(or) !(not)
4. 空运算符: empty
	* 功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0
	* ${empty list}:判断字符串、集合、数组对象是否为null或者长度为0
	* ${not empty str}:表示判断字符串、集合、数组对象是否不为null 并且 长度>0

3.2.2 获取值

  • el表达式只能从域对象中获取值
  • 语法:
1. ${域名称.键名}:从指定域中获取指定键的值
	* 域名称:
		1. pageScope		--> pageContext
		2. requestScope 	--> request
		3. sessionScope 	--> session
		4. applicationScope --> application(ServletContext)
	* 举例:在request域中存储了name=张三
	* 获取:${requestScope.name}

2. ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。

3. 获取对象、List集合、Map集合的值
	1. 对象:${域名称.键名.属性名}
		* 本质上会去调用对象的getter方法

	2. List集合:${域名称.键名[索引]}

	3. Map集合:
		* ${域名称.键名.key名称}
		* ${域名称.键名["key名称"]}

3.2.3 隐式对象:

  • el表达式中有11个隐式对象
隐含对象 描述
pageScope page 作用域
requestScope request 作用域
sessionScope session 作用域
applicationScope application 作用域
param Request 对象的参数,字符串
paramValues Request对象的参数,字符串集合
header HTTP 信息头,字符串
headerValues HTTP 信息头,字符串集合
initParam 上下文初始化参数
cookie Cookie值
pageContext 当前页面的pageContext
  • pageContext对象是JSP中pageContext对象的引用。
* 通过pageContext对象,您可以访问request对象。比如,访问request对象传入的查询字符串,就像这样:
* 获取jsp其他八个内置对象
	* ${pageContext.request.contextPath}:动态获取虚拟目录
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!