EL表达式的基本知识

Posted Actexpler

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EL表达式的基本知识相关的知识,希望对你有一定的参考价值。

1.EL表达式


[1] 简介

> JSP表达式 <%= %> 用于向页面中输出一个对象。
> 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段。
> EL表达式用来向页面输出内容

 

[2] 基本语法

> ${表达式}
> EL表达式可以 - 使用 ${属性名}
- 如果只填写一个属性名,EL表达式会自动做全域查找。
- 所谓的全域查找,就是按照page request session
application四个域范围内分别查找,找到就返回属性,如果没找到什么都不返还。
- 我们还可以指定去哪个域查找(域实际上就是Map)
(page request,session application是域对象)
以下几个是对应的域
pageScope
requestScope
sessionScope
applicationScope
- 例子:
查找request中属性
${requestScope.key}
${requestScope.key.属性名},调用的是属性的get方法
查找session中的属性
${sessionScope.属性名}
<%
	Student student1=new Student(1,"张三","123");
	Student student2=new Student(2,"张1","123");
	Student student3=new Student(3,"张2","123");
	Student student4=new Student(4,"张4","123");
	 pageContext.setAttribute("student", student1);
	 request.setAttribute("student",student2);
         session.setAttribute("student", student3);
	 application.setAttribute("student", student4);
%>
	${student}<br>
	${pageScope.student.name}<br>
	${requestScope.student }<br>
	${sessionScope.student.id }<br>
	${applicationScope.student.password }<br>
	
- 注意:EL表达式只能获取域中的属性
EL表达式不能直接调用对象的方法
- 通过EL表达式读取对象的属性时,只需要${对象.属性名}
EL表达式会自动调用对象的对应的getter方法,通过将属性名首字母大写,然后加上一个get
注意:只要有属性,就可以一直点下去,也就说对象的属性是对象的话,我们也可以通过对象的属性的属性的方式调用!
- 当读取一些名字比较特殊的属性时,这种特殊值必须要指定域,例如属性名带-:
${requestScope[\'属性名\']}

[3] 隐含对象

> EL中一共有11个内置对象。
- pageContext
类型 : PageContext
它和JSP中pageContext是一个东西
作用 : 可以获取到JSP中其他的隐含对象
例如:可以获取项目名:
- pageScope
类型:Map<String,Object>
代表:page域中的属性
作用:可以获取到page域中的属性
- requestScope(一次请求,转发)
类型:Map<String,Object>
代表:request域中的属性
作用:可以获取到request域中的属性
- sessionScope
类型:Map<String,Object>
代表:session域中的属性
作用:可以获取到session域中的属性
- applicationScope
类型:Map<String,Object>
代表:application域中的属性
作用:可以获取到application域中的属性
- param
类型: Map<String , String>
代表:用户发送的请求参数
作用:可以获取请求参数
用法: ${param.参数名}
- paramValues
类型:Map<String , String[]>
代表:一个请求参数对应的多个值
用法: ${paramValues.参数名[索引]}
- header
作用:可以获取到用户发送的请求头
类型:Map<String , String>
例如:获取用户的系统信息 ${header[\'User-Agent\']}
? - headerValues
类型: Map<String , String[]>
作用:可以获取一个头的多个值
? - initParam;
类型:Map<String , String>
作用:获取整个WEB应用的初始化参数
? - cookie
类型:Map<String , Cookie>

[4] 运算

> 在EL中可以直接使用运算符进行运算。
> 在EL中可以使用Empty元素符:
如果值为null , empty则返回 true
如果为空串, 则返回 true
空的集合 返回true
> 所以empty元素符经常用来判断集合或者字符串是否为空

以上是关于EL表达式的基本知识的主要内容,如果未能解决你的问题,请参考以下文章

jsp--EL表达式

Jsp入门EL表达式_学习笔记

JSP标签语法JSTL标签库EL表达式辨析

EL表达式

jsp中的EL表达式

JSP回顾