EL表达式的基本使用
1访问bean属性
第一种方式${user.name}
容器一次从pageContext,request,session,application中查找(实际上是调用request.getAttribute("user"))绑定为"user"的对象,如果找到了则不再向下继续查找,找到了以后调用该对象的getName方法,最后将结果输出。如果都找不到则不输出。
当然我们也可以制定查找的范围:
表达式语言包含了如下11个内置对象:
》pageContext:代表该页面的pageContext对象,与JSP的pageContext内置对象相同。
》pageScope:用于获取page范围的属性值
》requestScope:用于获取request范围的属性值
》sessionScope:用于获取session范围的属性值
》applicationScope:用于获取application范围的属性值
》param: 用于获取请求的参数值
》paramValues:用于获取请求的参数值,与param的区别在于,该对象用于获取属性值为数组的属性值。
》head: 用于获取请求头的属性值
》headerValues:用于获取请求头的参数值,与header区别在于,该对象用于获取属性值为数组的属性值。
》initParam: 用于获取请求Web运用的初始化参数
》cookie: 用于获取指定的cookie值
下面的JSP页面示范了如何使用表达式语言的内置对象方法。
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> 表达式语言 - 内置对象 </title>
</head>
<body>
<h2>表达式语言 - 内置对象</h2>
请输入你的名字:
<!-- 通过表单提交请求参数 -->
<form action="implicit-objects.jsp" method="post">
<!-- 通过${param['name']} 获取请求参数 -->
你的名字 = <input type="text" name="name" value="${param['name']}"/>
<input type="submit" value='提交'/>
</form><br/>
<% session.setAttribute("user" , "Tim");
//下面三行代码添加Cookie
Cookie c = new Cookie("name" , "Tom");
c.setMaxAge(24 * 3600);
response.addCookie(c);
%>
<table border="1" width="660" bgcolor="#aaaadd">
<tr>
<td width="170"><b>功能</b></td>
<td width="200"><b>表达式语言</b></td>
<td width="300"><b>计算结果</b></td>
<tr>
<!-- 使用两种方式获取请求参数值 -->
<td>取得请求参数值</td>
<td>\${param.name}</td>
<td>${param.name} </td>
</tr>
<tr>
<td>取得请求参数值</td>
<td>\${param["name"]}</td>
<td>${param["name"]} </td>
</tr>
<tr>
<!-- 使用两种方式获取指定请求头信息 -->
<td>取得请求头的值</td>
<td>\${header.host}</td>
<td>${header.host}</td>
</tr>
<tr>
<td>取得请求头的值</td>
<td>\${header["accept"]}</td>
<td>${header["accept"]}</td>
</tr>
<!-- 获取Web应用的初始化参数值 -->
<tr>
<td>取得初始化参数值</td>
<td>\${initParam["author"]}</td>
<td>${initParam["author"]}</td>
</tr>
<!-- 获取session返回的属性值 -->
<tr>
<td>取得session的属性值</td>
<td>\${sessionScope["user"]}</td>
<td>${sessionScope["user"]}</td>
</tr>
<!-- 获取指定Cookie的值 -->
<tr>
<td>取得指定Cookie的值</td>
<td>\${cookie["name"].value}</td>
<td>${cookie["name"].value}</td>
</tr>
</table>
</body>
</html>
2进行一些简单的计算,计算结果可以直接输出,也可以给JSP标签赋值。
a算术运算:支持"+" "-", "*", "/"和"%"但是,“+”不能进行字符串的连接处理
b关系运算符: ">" "<" "=" "!=" ">=" "<="
c逻辑运算符:支持"&&" "||", "!"