JSP教程-表达式语言(EL)在JSP中的应用
表达式语言(EL)简化了在Java Bean组件以及其他对象(如请求、会话、应用程序等)中存储的数据的访问。
EL中有许多隐含对象、运算符和保留字。
这是在JSP技术2.0版本中新增加的功能。
表达式语言(EL)的语法
${ expression } 表达式语言中的隐含对象(EL)
表达式语言中有许多隐含对象,如下所示:
| 隐含对象 | 用途 |
|---|---|
| pageScope | 它将给定的属性名称与页面范围内设置的值映射起来 |
| requestScope | 它将给定的属性名称与请求范围内设置的值映射起来 |
| sessionScope | 它将给定的属性名称与会话范围内设置的值映射起来 |
| applicationScope | 它将给定的属性名称与应用程序范围内设置的值映射起来 |
| param | 它将请求参数映射到单个值 |
| paramValues | 它将请求参数映射到一个值数组 |
| header | 它将请求头名称映射到单个值 |
| headerValues | 它将请求头名称映射到一个值数组 |
| cookie | 它将给定的cookie名称映射到cookie值 |
| initParam | 它将初始化参数映射 |
| pageContext | 它提供对多个对象(请求、会话等)的访问 |
EL param示例
在此示例中,我们创建了两个文件index.jsp和process.jsp。index.jsp文件从用户处获取输入,并将请求发送到process.jsp,后者又使用EL打印用户的名字。
index.jsp
<form action="process.jsp">
Enter Name:<input type="text" name="name" /><br/><br/>
<input type="submit" value="go"/>
</form> process.jsp
Welcome, ${ param.name } EL sessionScope示例
在此示例中,我们使用EL打印存储在会话范围内的数据。为此,我们使用了sessionScope对象。
index.jsp
<h3>welcome to index page</h3>
<%
session.setAttribute("user","sonoo");
%>
<a href="process.jsp">visit</a> process.jsp
Value is ${ sessionScope.user } EL cookie示例
index.jsp
<h1>First JSP</h1>
<%
Cookie ck=new Cookie("name","abhishek");
response.addCookie(ck);
%>
<a href="process.jsp">click</a> process.jsp
Hello, ${cookie.name.value} EL中运算符的优先级
表达式语言中提供了许多运算符。它们的优先级如下:
| [] . |
|---|
| () |
| -(一元) not ! empty |
| * / div % mod |
| + - (二元) |
| < <= > >= lt le gt ge |
| == != eq ne |
| && and |
| // or |
| ?: |
EL中的保留字
表达式语言中有许多保留字,如下所示:
| lt | le | gt | ge |
|---|---|---|---|
| eq | ne | true | false |
| and | or | not | instanceof |
| div | mod | empty | null |