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 |
热门文章
优秀文章