《EL表达式》PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

取得sessionID
${pageContext.session.id}
8.3 EL存取器
使用EL存取器(也称作导航)可以访问JavaBean、Map、对象数 组和List等中的数据。EL对数据的访问比使用Scriptlets有着代码量少, 易维护的特点。
• 使用存取器读取JavaBean中的数据 • 使用存取器读取Map中的数据 • 使用存取器读取数组中的数据 • 存取器复杂应用
8.2.1 .与[ ]运算符
(1)如果存取的属性名称包含一些特殊的符号,如“.”或者是“-”等非 字母或数字的符号时,就必须使用[ ],例如。 ert-Name 这样写是错误的,必须使用[ ],代码如下。 er[“user-Name”] (2)如果使用变量来传入,那么也就只能使用[ ]。例如。 <%String data = “userName”;%> ${er[data]} 这样做的效果等于于上面代码。 ${erName}
8.4 综合练习
1、结合EL内置对象和EL算术表达式做一个简单的计算器程序。
8.5 小结
本章详细介绍了什么是EL表达式,还介绍了EL的运算符。介绍了EL 的内置对象以及其作用和使用方法。最后重点介绍了EL存取器,以及 如何通过存取器读取JavaBean中数据,如何读取Map中数据等等。
1
整理ppt
8.1 EL运算符
EL提供了多种运算符操作,比如算术运算符、关系运算符、逻辑运算 符、验证运算符等。本节将对这些运算符进行详细的讲解。
2
整理ppt
8.1.1 算术运算符
通过EL提供算术运算符,开发者可以非常方便的在JSP页面进行算 术操作。而且使用算术运算符和Java的算术运算符非常相视,开发者 能很熟练的使用这些算术运算符来进行开发,从而简化了页面代码量。
取得HTTP请求方式(GET or POST)pageContext.request.method}
取得使用的协议
${pageContext.request.protocol}
取得用户IP地址
${pageContext.request.remoteAddr}
判断session是否为新 ${pageContext.session.new}
高 到
+ 、-(减)

< 、 > 、 <= 、 >= 、 lt 、 gt 、 le 、 ge
== 、 != 、 eq 、 ne
&& 、 and
|| 、 or
${A ? B : C}
8.2 EL内置对象
EL表达式非常简单,在前面已经介绍过EL的运算符。所有的EL表 达式都是以“${”开始“}”为结尾的。如: “${erName}”。 如果按照以前的JSP Scriptlets的写法代码如下。 User user = (User)application.getAttribute(“user”); String username = user.getUserName();
EL提供了验证运算符empty,其对于验证数据特别有用。empty运 算符采用单个表达式作为其变量即${empty input},并返回一个布尔值, 该布尔值表示对表达式求值的结果是不是“空”值。求值结果为null的 表达式被认为是空,如无元素的集合或数组。如果参数是对长度为零的 String求值所得的结果,则empty 运算符也将返回 true。
8.2.3 与输入有关的内置 对象
与输入有关的隐含对象有两个param和paramValues,用来取得用户 的请求参数。在使用EL之前可以使用如下代码取得用户的请求参数。 request.getParameter(String name); request.getParameterValues(name); 在使用EL时则可以使用param和paramValues两者来取得用户请求参数。 其中使用param接收的参数只有一个值,而如果参数有几个值,就必须 使用paramValues来接受参数。
> 或 gt
大于
${1 > 2}或${1 gt 1} false
<= 或 le
小于或者等于
${1 <= 2}或${1 le 1} true
>= 或 ge
8.1.3 逻辑运算符
逻辑运算符主要用来进行逻辑操作,如:交集、并集、非。EL提供 了关系运算符,使开发者能很方便的在JSP页面进行逻辑操作。需要注 意的是运算符两边的表达式必须是布尔类型的。
8.2.1 .与[ ]运算符
EL通过.与[ ]运算符来存取数据。比如: ${erName} 等价于 ${er[“userName”] } .和[ ]也可以同时混合使用,如下: ${sessionScope.shoppingCart[0].price} 回传的结果为shoppingCart中第一项物品的价格。 接下来介绍两者的差异。
8.2.4 cookie内置对象
下面来介绍EL其他的隐含对象cookie、header、headerValues、 iniParam、pageContext。 cookie以key-value(键值对)的形式存储在浏览器的缓存区内。EL中 没有提供设定cookie的操作(这些操作一般都是后端开发者去做的), 只能通过cookie对象设置cookie中的值。
当A为true时,为false 当A为false时, 为true
8.1.4 条件运算符
前面提到了大量的预算符,下面还将介绍一个可以节省大量代码的 条件运算符。条件运算符的格式如下。 ${A ? B : C} 如果A为true时,执行B代码;而如果A为false时,则执行C代码。
8.1.5 验证运算符
8.2.6 initParam内置对象
initParam可以取得在web站点中设置的环境参数(context)值。
03
<context-param>
04
<param-
name>username</param-name>
05 value>
<param-value>James</param-
06
</context-param>
逻辑运算符 说明 && 或 and 交集
|| 或 or
并集
! 或 not

示例
结果
${A && B}或${A and 当A和B都为true时为true,其他情
B}
况为false
${A || B}或${A or B}
当A和B都为false时为false,其他情 况为true
${!A} 或${not A}
常用的关系运算符有等于、不等于、小于、大于、小于或等于、大于或 等于,如下表所示。
关系运算符
说明
示例
结果
= = 或 eq
等于
${1 = = 1}或${1 eq 1} true
!= 或ne
不等于
${1 != 1}或${1 ne 1} false
< 或 lt
小于
${1 < 2}或${1 lt 1} true
8.2.7 pageContext内置 对象
pageContext用来取得有关用户请求和页面的详细信息。
取得请求的参数字符串 ${pageContext.request.queryString}
取得请求URL
${pageContext.request.requestURL}
取得web应用名称
${pageContext.request.contextPath}
常用的算术运算符有加、减、乘、除、求余,如下表所示。
算术运算符
说明
示例
结果
+

${1 + 1}
2
-

${1 - 1}
0
*

${1 * 2}
2
/或div

${3 / 2}
1.5
%或mod
取余
${3 % 2}
1
8.1.2 关系运算符
关系运算符主要用来进行比较操作。EL提供了关系运算符,使开发 者能很方便的在JSP页面进行比较操作。
(1)applicationScope对象,用来取得application范围属性值。
(2)sessionScope对象,用来取得session范围属性值。
(3)requestScope对象,用来取得request范围属性值。
(4)pageScope对象,用来取得page范围属性值。
如果不指定范围,如使用${name}。其意思是去取某一范围中名称为name的属 性。因为并没有指定哪一个属性范围的name,所以它的默认值会从page范围 内找,如果找不到,再依次到request、session、application范围中找。如果没 有找到就返回null。在网页中也就没有显示。
8.1.6 括号运算符以及运算符的优先级
括号运算符主要用来改变运算的优先级,例如${(3+2)*8},执行结 果为40。如果去掉括号,那么结果将为19。从而可以看出在括号中内 容将会先执行。
从高到低
[] , .
()
-(负) 、 not 、 ! 、 empty

* 、 / 、 div 、 % 、 mod
8.2.2 与储存有关的内置 对象
前面几章介绍了JSP中有内置对象,同样在EL中也有自己的隐含对象。
首先介绍4个与存储范围有关的隐含对象,分别是applicationScope、 sessionScope、requestScope、pageScope。这些隐含对象使用时来和JSP中 的pageContext,request,session,application一样。但是这四个隐含对象只 能用来取得某个范围的属性值。即JSP中的getAttribute(String name),不能取 得其他的信息。比如在JSP中request对象除了能够存取属性外,还可以用来接 受参数和表头信息等。
8.2.5 header内置对象
header储存用户浏览器和服务器用来沟通的数据。当用户浏览器请 求服务器的页面时,会传送出一个记载信息的标头文件。而服务器端可 以通过header或者headerValues来取得这些值。其中header用来取得 同一标头名称只有一个值的信息,而headerValues用来取得同一标头 名称拥有不同的值的信息。
第8章 EL表达式
EL全名为Expression Language,它原来是JSTL1.0为了方便存 取数据所定义的语言。到了JSP2.0以后,EL正式纳入成为标准规 范之一。只要是支持Servlet2.4/JSP2.0的Container,都可以在JSP 网页中直接使用EL。 通过本章的学习,读者应该能够完成如下几个目标。 • 熟练掌握使用EL运算符 • 熟练掌握EL内置对象 • 熟练掌握使用EL存取器
相关文档
最新文档