当前位置 : 主页 > 编程语言 > java >

JSP 表达式语言

来源:互联网 收集:自由互联 发布时间:2021-06-25
JSP 表达式语言 JSP 表达式语言 ( EL )使得访问存储在 JavaBean 中的数据变得非常简单。 JSP EL 既可以用来创建算术表达式也可以用来创建逻辑表达式。在 JSP EL 表达式内可以使用整型数,

JSP 表达式语言

JSP表达式语言EL)使得访问存储在JavaBean中的数据变得非常简单。JSP EL既可以用来创建算术表达式也可以用来创建逻辑表达式。在JSP EL表达式内可以使用整型数,浮点数,字符串,常量truefalse,还有null

 

JSP EL允许您指定一个表达式表示属性值。一个简单的表达式语法如下:

${expr}

 

其中,expr指的是表达式。在JSP EL中通用的操作符是 {} 。这两个操作符允许您通过内嵌的JSP对象访问各种各样的JavaBean属性。

 

 

EL中的基础操作符

EL表达式支持大部分Java所提供的算术和逻辑操作符:

操作符 描述

. 访问一个Bean属性或者一个映射条目

[] 访问一个数组或者链表的元素

( ) 组织一个子表达式以改变优先级

+ 加

- 减或负

* 乘

/ or div 除

% or mod 取模

== or eq 测试是否相等

!= or ne 测试是否不等

< or lt 测试是否小于

> or gt 测试是否大于

<= or le 测试是否小于等于

>= or ge 测试是否大于等于

&& or and 测试逻辑与

|| or or 测试逻辑或

! or not 测试取反

empty 测试是否空值

 

JSP EL隐含对象

JSP EL支持下表列出的隐含对象:

隐含对象 描述

1.pageScope     page 作用域

2.requestScope request 作用域

3.sessionScope session 作用域

4.applicationScope application 作用域

5.param         Request 对象的参数,字符串

6.paramValues Request对象的参数,字符串集合

7.header         HTTP 信息头,字符串

8.headerValues HTTP 信息头,字符串集合

9.initParam    上下文初始化参数

10.cookie        Cookie

11.pageContext   当前页面的pageContext

 

您可以在表达式中使用这些对象,就像使用变量一样。

 

pageContext对象

pageContext对象是JSPpageContext对象的引用。通过pageContext对象,您可以访问request对象。比如,访问request对象传入的查询字符串,就像这样:

 

${pageContext.request.queryString}

 

 

Scope对象

pageScoperequestScopesessionScopeapplicationScope变量用来访问存储在各个作用域层次的变量。

 

举例来说,如果您需要显式访问在applicationScope层的box变量,可以这样来访问:applicationScope.box

 

paramparamValues对象

paramparamValues对象用来访问参数值,通过使用request.getParameter方法和request.getParameterValues方法。

 

举例来说,访问一个名为order的参数,可以这样使用表达式:

1.${param.order},或者2.${param["order"]}

 

接下来的例子表明了如何访问request中的username参数:

<%@ page import="java.io.*,java.util.*" %>

<%

    String title = "Accessing Request Param";

%>

<html>

<head>

<title><% out.print(title); %></title>

</head>

<body>

<center>

<h1><% out.print(title); %></h1>

</center>

<div align="center">

<p>${param["username"]}</p>

</div>

</body>

</html>

 

param对象返回单一的字符串,而paramValues对象返回一个字符串数组

 

headerheaderValues对象

headerheaderValues对象用来访问信息头,通过使用 request.getHeader方法和request.getHeaders方法。

 

举例来说,要访问一个名为user-agent的信息头,可以这样使用表达式:

${header.user-agent},或者${header["user-agent"]}

 

接下来的例子表明了如何访问user-agent信息头

<%@ page import="java.io.*,java.util.*" %>

<%

    String title = "User Agent Example";

%>

<html>

<head>

<title><% out.print(title); %></title>

</head>

<body>

<center>

<h1><% out.print(title); %></h1>

</center>

<div align="center">

<p>${header["user-agent"]}</p>

</div>

</body>

</html>

 

优点:方便快捷的使用隐式对象里面的属性

缺点:不能代替流程控制,例如

  1. for循环/while/switch...,
  2. 没有代码补全,找BUG不好找。
上一篇:JSP 指令
下一篇:jsp原理
网友评论