EL表达式
Expression Language 表达式语言,常用于取值
我们之前在JSP中写java代码必须写在<%%>里面。并且取值代码比较繁琐。
而EL表达式可以使我们的取值代码更加简洁
语法非常简单
${}
1
看个小例子:
我们在一个表单填写账号和密码提交后在成功页面显示出账号密码。
这里就直接贴成功页面的代码
<%--
Created by IntelliJ IDEA.
User: YZQ
Date: 2018/7/29
Time: 20:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录成功</title>
</head>
<body>
<h1>登录成功</h1>
<h3>传统的取值方式</h3>
用户名:<%=request.getAttribute("account")%>
<br>
密码:<%=request.getAttribute("pwd")%>
<h3>EL表达式取值</h3>
<%--使用EL表达式取值--%>
用户名:${requestScope.account}
<br>
密码: ${pwd}
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
运行结果:
可以看到,使用EL表达式取值非常的简单,直接${account}即可,我们的jsp页面主要就是用来显示数据的,那么,使用EL表达式则可以减少很多取值的代码。这些值是从哪取的呢,实际上就是从四大作用域中获取的。
servlet中的四个作用域分别为page,request,session,application
我们可以指定在某个作用域中取数据。
例如
<%--从 page 作用域中查找account--%>
${pageScope.account}
<%--从 request 作用域中查找account--%>
${requestScope.account}
<%--从 session 作用域中查找account--%>
${sessionScope.account}
<%--从 application 作用域中查找account--%>
${applicationScope.account}
1
2
3
4
5
6
7
8
如果我们不指定作用域的话,直接${account}的话,默认会按照作用域的范围从小到大依次查找,找到第一个为止,都找不到的话则为空
作用域从小到大:page->request->session->application
|
|