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页面示范了如何使用表达式语言的内置对象方法。
1 <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4 <html xmlns="http://www.w3.org/1999/xhtml"> 5 <head> 6 <title> 表达式语言 - 内置对象 </title> 7 </head> 8 <body> 9 <h2>表达式语言 - 内置对象</h2> 10 请输入你的名字: 11 <!-- 通过表单提交请求参数 --> 12 <form action="implicit-objects.jsp" method="post"> 13 <!-- 通过${param['name']} 获取请求参数 --> 14 你的名字 = <input type="text" name="name" value="${param['name']}"/> 15 <input type="submit" value='提交'/> 16 </form><br/> 17 <% session.setAttribute("user" , "Tim"); 18 //下面三行代码添加Cookie 19 Cookie c = new Cookie("name" , "Tom"); 20 c.setMaxAge(24 * 3600); 21 response.addCookie(c); 22 %> 23 <table border="1" width="660" bgcolor="#aaaadd"> 24 <tr> 25 <td width="170"><b>功能</b></td> 26 <td width="200"><b>表达式语言</b></td> 27 <td width="300"><b>计算结果</b></td> 28 <tr> 29 <!-- 使用两种方式获取请求参数值 --> 30 <td>取得请求参数值</td> 31 <td>${param.name}</td> 32 <td>${param.name} </td> 33 </tr> 34 <tr> 35 <td>取得请求参数值</td> 36 <td>${param["name"]}</td> 37 <td>${param["name"]} </td> 38 </tr> 39 <tr> 40 <!-- 使用两种方式获取指定请求头信息 --> 41 <td>取得请求头的值</td> 42 <td>${header.host}</td> 43 <td>${header.host}</td> 44 </tr> 45 <tr> 46 <td>取得请求头的值</td> 47 <td>${header["accept"]}</td> 48 <td>${header["accept"]}</td> 49 </tr> 50 <!-- 获取Web应用的初始化参数值 --> 51 <tr> 52 <td>取得初始化参数值</td> 53 <td>${initParam["author"]}</td> 54 <td>${initParam["author"]}</td> 55 </tr> 56 <!-- 获取session返回的属性值 --> 57 <tr> 58 <td>取得session的属性值</td> 59 <td>${sessionScope["user"]}</td> 60 <td>${sessionScope["user"]}</td> 61 </tr> 62 <!-- 获取指定Cookie的值 --> 63 <tr> 64 <td>取得指定Cookie的值</td> 65 <td>${cookie["name"].value}</td> 66 <td>${cookie["name"].value}</td> 67 </tr> 68 </table> 69 </body> 70 </html>
2进行一些简单的计算,计算结果可以直接输出,也可以给JSP标签赋值。
a算术运算:支持"+" "-", "*", "/"和"%"但是,“+”不能进行字符串的连接处理
b关系运算符: ">" "<" "=" "!=" ">=" "<="
c逻辑运算符:支持"&&" "||", "!"