概述
EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中脚本的编写。
如何从域中取出数据
实例:
<body>
<!-- 模拟域中的数据 -->
<%
pageContext.setAttribute("company", "dynamic");
//存储字符串
request.setAttribute("company", "dynamic");
//存储一个对象
User user = new User();
user.setId(1);
user.setName("a");
user.setPassword("123");
session.setAttribute("user", user);
//存储一个集合
List<User> list = new ArrayList<User>();
User user1 = new User();
user1.setId(2);
user1.setName("b");
user1.setPassword("123");
list.add(user1);
User user2 = new User();
user2.setId(3);
user2.setName("c");
user2.setPassword("123");
list.add(user2);
application.setAttribute("list", list);
%>
</body>
方法1:采用脚本
<%=request.getAttribute("company") %>
<%
User sessionUser = (User)session.getAttribute("user");
out.write(sessionUser.getName());
%>
方法2:采用EL表达式获得域中的值
${requestScope.company }
${sessionScope.user.name }
${applicationScope.list[1].name}
方法3:采用EL表达式全域查找
${company }
${user.name }
${list[1].name}
备注:由于没有指定在哪一个范围进行查找,因此它会依序从Page、Request、Session、Application范围查找。
总结:
1、jsp脚本:<%=request.getAttribute(name)%>
2、EL表达式替代上面的脚本:
requestScope.nameEL最主要的作用是获得四大域中的数据格式
r
e
q
u
e
s
t
S
c
o
p
e
.
n
a
m
e
E
L
最
主
要
的
作
用
是
获
得
四
大
域
中
的
数
据
格
式
{EL表达式}
EL获得pageContext域中的值:
pageScope.key;EL获得request域中的值:
p
a
g
e
S
c
o
p
e
.
k
e
y
;
E
L
获
得
r
e
q
u
e
s
t
域
中
的
值
:
{requestScope.key};
EL获得session域中的值:
sessionScope.key;EL获得application域中的值:
s
e
s
s
i
o
n
S
c
o
p
e
.
k
e
y
;
E
L
获
得
a
p
p
l
i
c
a
t
i
o
n
域
中
的
值
:
{applicationScope.key};