什么是EL表达式?
EL表达式的全称是Expression Language(直译:表达式语言),目的是简化JSP获取JavaBean和属性。EL表达式的基本语法是“${ exp }”.
简单的用法
当我们获取JavaBean中的属性时:
<jsp:useBean id="person" class="com.zhong.Person" scope="request">
<jsp:setProperty name="name" property="xiaoming"></jsp:setProperty>
<jsp:setProperty name="age" property="18"></jsp:setProperty>
</jsp:useBean>
我们要获取person的name属性,常规写法:
<jsp:getProperty name="person" property="name"/>
通过EL表达式获取:
${requestScope.person.name}
是不是简便了很多,下面介绍EL表达式中的基础操作符:
操作符 | 描述 | 例 |
---|---|---|
. | 访问一个Bean属性或者一个映射条目 | requestScope.person.name |
[] | 访问一个数组或者链表的元素 | requestScope.person[‘account’] |
+ | 加 | |
- | 减 | |
* | 乘 | |
() | 改变优先级和组织一个语句 | |
/ or div | 除 | |
% or mod | 取余 | |
== or eq | 是否相等 | |
!= | 是否不想等 | |
< or lt | 是否小于 | |
> or gt | 是否大于 | |
>= or ge | 是否大于等于 | |
<= or le | 是否小于等于 | |
&& or and | 逻辑与 | |
|| or or | 逻辑或 | |
! or not | 取反 | |
empty | 是否为空 |
获取JSP隐藏对象
类别 | 表示法 | 描述 | 实例 |
---|---|---|---|
请求参数 | param | 包含所有参数的Map。可以回去参数(返回String) | ${param.person},${param[‘person’]} |
请求参数 | paramValues | 包含所有参数的Map。可以回去参数的数组(返回String[]) | ${paramValues.persons[1]} 返回persons数组的第一个对象 |
头信息 | header | 包含所有头信息的Map。可以获取头信息(返回String) | ${header.host}获取头信息中的host |
头信息 | headersValues | 包含所有头信息的Map。可以获取头信息(返回String[]) | ${headersValues}返回所有的header信息 |
Cookie | cookie | 包含所有的Cookie的Map,key为Cookie的name属性 | ${cookie.name}获取cookie的属性 |
初始化参数 | initParam | 包含所有的初始化参数的Map。 | ${initParam.encoding}获取初始化编码 |
作用域 | pageScope | 包含page作用域内变量的Map | ${pageScope.person.name}获取pageScope范围内的person对象的name属性 |
作用域 | requestScope | 包含requestScope 作用域内变量的Map | ${requestScope.person.name }获取requestScope 范围内的person对象的name属性 |
作用域 | sessionScope | 包含sessionScope作用域内变量的Map | ${sessionScope .person.name }获取sessionScope范围内的person对象的name属性 |
作用域 | applicationScope | 包含applicationScope作用域内变量的Map | ${applicationScope .person.name }获取applicationScope范围内的person对象的name属性 |
pageContext | 包含页面的变量的Map,包含request,respose,page,application,config等所有隐藏对象 | ${oageContext.request.person}返回request范围内的person对象 |