EL表达式语法

1 什么是EL表达式

EL(Expression Language)表达式语言 是为了使JSP写起来更加简单。EL表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。

EL中有许多内置对象,运算符和保留关键字。

它是JSP技术版本2.0中的新增功能。

2 EL表达式语法

${ 表达式 }  

3 EL表达式的内置对象

EL表达式语言中有许多内置对象。它们如下:

内置对象 说明
pageScope 从page范围中获取值
requestScope 从request范围中获取值
sessionScope 从session范围中获取值
applicationScope 从application范围中获取值
param 用于获取请求的参数(单个值的情况)
paramValues 用于获取请求的参数(多个值的情况),返回数组
header 用于获取请求头(单个值的情况)
headerValues 用于获取请求头(多个值的情况),返回数组
cookie 用于获取请求中的cookie数据
initParam 用于获取web的初始化参数
pageContext 可以从page,request,session,application域获取数据

4 EL表达式读取属性的示例

在下面的示例中,我们创建两个文件index.jsp和process.jsp。index.jsp文件获取用户输入的名称,并将请求发送到process.jsp,后者再使用EL表达式输出用户名。

4.1 编写index.jsp

<%@ page language="java" contentType="text/html;charset=utf-8" %>
<html>
<html>
<head>
    <meta charset="utf-8">
    <title>一点教程网-EL表达式</title>
</head>
<body>

<form action="process.jsp">
    请输入名称:<input type="text" name="name" /><br/><br/>
    <input type="submit" value="提交"/>
</form>

</body>
</html>

4.2 编写process.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>一点教程网-EL表达式</title>
</head>
<body>

欢迎你, ${ param.name }

</body>
</html>

4.3 运行测试

5 EL表达式作用域的示例

在下面的示例中,我们使用EL表达式输出存储在session范围中的数据。因此,我们需要使用sessionScope内置对象。

5.1 编写index.jsp

<%@ page language="java" contentType="text/html;charset=utf-8" %>
<html>
<html>
<head>
    <meta charset="utf-8">
    <title>一点教程网-EL表达式</title>
</head>
<body>

<h3>欢迎访问index.jsp</h3>
<%
    session.setAttribute("user","yiidian");
%>

<a href="process.jsp">跳转页面</a>

</body>
</html>

5.2 编写process.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>一点教程网-EL表达式</title>
</head>
<body>

session域的值是: ${ sessionScope.user }

</body>
</html>

5.3 运行测试

6 EL表达式读取Cookie的示例

6.1 编写index.jsp

<%@ page language="java" contentType="text/html;charset=utf-8" %>
<html>
<html>
<head>
    <meta charset="utf-8">
    <title>一点教程网-EL表达式读取Cookie数据</title>
</head>
<body>

<h1>这是index.jsp页面</h1>
<%
    Cookie ck=new Cookie("name","yiidian");
    response.addCookie(ck);
%>
<a href="process.jsp">跳转到process.jsp页面</a>

</body>
</html>

6.2 编写process.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>一点教程网-EL表达式读取Cookie数据</title>
</head>
<body>

你好, ${cookie.name.value}

</body>
</html>

6.3 运行测试

7 EL表达式运算符优先级

EL表达式语言提供了许多运算符。它们的优先级如下:

[] .
()
-(unary) not ! empty
* / div % mod
+ - (binary)
< <= > >= lt le gt ge
== != eq ne
&& and
|| or
?:

8 EL表达式的保留关键字

EL表达式语言中有很多保留关键词字(不能使用它们来命名):

lt le gt ge
eq ne true false
and or not instanceof
div mod empty null

 

推荐好课