一、概念
EL表达式: 全程Expression Language,一种写法非常简单的表达式;作用: 让jsp写起来更加方便,简化在jsp中获取作用域或对象强转请求数据的写法,也会搭配JSTL来使用;语法结构: ${表达式}
如果是通过request.setPartner存的数据: ${param.键名}获取; request.setParameter中有同键不同值数据: ${paramvalues.键名}获取,返回数组;如果通过request.setAttribute()存的对象数据: ${键名}获取; 普通对象: ${键名.属性名.属性名…} list集合: ${键名[下标]} map集合: ${键名.map集合存储的键名}EL表达式四大作用域数据查找顺序: 默认从pageContext从小到到大依次查找,就到则不往后查找; 若要指定具体的作用域查找,使用
作
用
域
名
+
S
c
o
p
.
键
名
,
如
:
{作用域名+Scop.键名},如:
作 用 域 名 + S c o p . 键 名 , 如 : {pageScope.name},
r
e
q
u
e
s
t
S
c
o
p
e
.
n
a
m
e
,
{requestScope.name},
r e q u e s t S c o p e . n a m e , {sessionScope.name},${applicationScope.name}EL表达式逻辑运算: 如:$ {a+b},$ {4>2},"+"号表示算术运算,不表示字符连接,${1+“3”}会将引号中的3转换为数字参与运算;EL表达式空值判断: ${empty 键名},如果为空返回true;EL获取请求头数据: $ {header.键名}或者${header[“键名”]};EL获取cookie: $ {cookie.cookie名},$ {cookie}(获取到所有cookie对象的map集合)
特点: 只能获取四大作用域中的对象或数据,找不到不报错,也不显示;
jsp传统方式获取request域中的数据或对象:
< b> < %= requst. getParameter ( "name" ) % > < / b>
< b> < %= requst. getAttribute ( "str" ) % > < / b>
< b> < %= ( ( ArrayList) requst. getAttribute ( "list" ) ) . get ( 0 ) % > < / b>
< b> < %= ( ( HashMap) requst. getAttribute ( "map" ) ) . get ( "name" ) % > < / b>
传统方式获取数据的缺点:
需要在jsp的page指令中导包; 对象需要类型强转; 提取数据过于繁琐;
使用EL表达式获取数据的方式:
< b> ${ param. name} < / b>
< b> ${ str} < / b>
< b> ${ list[ 0 ] } < / b>
< b> ${ map. name} < / b>