期待已久的日子即将到来: 最新版JavaServer Pages (JSP)2.0规范即将和其他的J2EE 1.4一同发布。新的JSP版本有一个新的飞跃,采用了新的方式:由于新的语言表达式(Expression Language,以下简称为EL)和JSP标准标签库(JSP Standard Tag Library ,以下简称为JSTL)这两种新的方式,在页面中不需要用java,对于开发一般的应用来说,重用代码变得更加容易。更具体来说,JSP 2.0带来了以下的优点:
首次被JSTL 1.0引入的EL现在被合并到JSP规范中,就像应用template text一样地使用所有的标准的和定制的组件。
新的EL已经被扩展,具备一个函数调用机制,JSTL1.1整合了一系列经常需要使用的函数。
新增加的变量和servlet 规范定义的错误处理机制被更好地组织起来。通过新增加的变量,JSP error pages 现在可以提供更多的错误信息。
容器因为更加严格的语法检查可以更容易地找出发生的错误。
所有的J2EE 1.4规范(包括JSP 2.0 和 Servlet 2.4),为了声明部署的规则描述而应用了XML schema。这样的好处之一是你现在可以通过任何顺序列出web.xml文件中的描述。JSP 2.0也增加了一些新的配置选项用于部署描述,允许通过全局的配置来代替基于每页的配置。
由于更具伸缩性的规则和新的自定义action element,现在就像编写XML文件一样,编写JSP页面变得更加容易。
定制的标签库现在可以开发成一系列的标签文件(具有JSP元素的文本文件),标签处理器可以使用新的、简化的标签处理器的API。与此同时,新规范加入了一些新的特性,比如:支持在jsp页面上显示动态属性列表和可执行片断属性。
在众多的书籍中,这是头一个讲解JSP 2.0新特性的文章。在这一部分,我们将看到和EL相关的信息,其他的新特性留到后面。在这里我假定读者已经熟悉JSP 1.2,而且至少听说过JSTL。
你可能对这本第三版的《JavaServer Pages》感兴趣。这本书中,我尽可能在细节上讲述所有的内容,而且并不认为你对JSP或者JSTL了解一切。这本书预计在2003年12月 出版,但是你现在可以在http://www.amazon.com、Barnes&Noble,或者其他在线书店预订。
EL(The Expression Language)
如果过去使用过JSTL,那么你可能已经熟悉了EL。EL在JSTL 1.0规范中被引入,用来在运行期间对Java表达式中action element属性赋值提供另一种选择。当JSTL EL已经非常迅速的流行起来情况下,还是存在一个问题: JSTL EL 表达式仅仅可以与JSTL和custom action一起使用,怎样才能使用非标准API对EL表达式求值?
JSP 2.0中,JSP容器自己可以理解EL表达式。这使你在所有过去只能应用Java表达式的地方应用EL表达式成为可能,比如:标准和定制action的属性值,模板文本。
在我们看具体的例子前,让我们更进一步的看看什么是EL。EL是从JavaScript中获得启发的一种语言,XPath(一种用来访问XML文档的语言),但是EL在对变量的null值和执行更多数据类型的自动类型转换的处理上更加宽松。这些新特性对于web应用非常重要,在这些应用中输入通常通过html表单的request parameter来得到。这些参数可能仅仅在某些请求下才能体现出来,而且浏览器经常将request parameter作为文本发送,然而应用程序经常需要把他们作为数字类型、布尔类型(true 或者 false)来使用。通过EL,你根本就很少需要关心缺少某些参数的值或者类型转换。
一个EL表达式包含变量和操作符。任何存储在某个JSP作用范围(如:page、 request、session、application)的bean能被作为一个EL变量来使用。另外,EL支持以下预定义的变量:
变量名称
说明
pageScope
一个包含所有page scope范围的变量集合 (a java.util.Map)
requestScope
一个包含所有request scope范围的变量集合 (a java.util.Map)
sessionScope
一个包含所有session scope范围的变量集合 (a java.util.Map)
applicationScope
一个包含所有application scope范围的变量集合 (a java.util.Map)
param
一个包含所有请求参数的集合 (a java.util.Map),通过每个参数对应一个String值的方式赋值
paramValues
一个包含所有请求参数的集合 (a java.util.Map),通过每个参数对应一个String数组的方式赋值
header
一个包含所有请求的头信息的集合, (a java.util.Map) ,通过每个头信息对应一个String值的方式赋值
headerValues
一个包含所有请求的头信息的集合 (a java.util.Map) ,通过每个头信息的值都保存在一个String数组的方式赋值
cookie
一个包含所有请求的 cookie集合 (a java.util.Map), 通过每一个cookie(javax.servlet.http.Cookie)对应一个cookie值的方式赋值
initParam
一个包含所有应用程序初始化参数的集合(a java.util.Map) ,通过每个参数分别对应一个String值的方式赋值
pageContext
一个javax.servlet.jsp.PageContext类的实例, 用来提供访问不同的请求数据
操作符描述了你对变量所期望的操作。如果你之前曾经使用过任何编程语言的话,在EL表达式中所使用的操作符对你来说可能看起来很熟悉。因为它们和那些在大多数语言中所支持的操作符一样。
Operator
Description
.
访问一个bean属性或者 Map entry
[]
访问一个数组或者链表元素
()
对子表达式分组,用来改变赋值顺序
? :
条件语句,比如: 条件 ? ifTrue : ifFalse.如果条件为真,表达式值为前者,反之为后者
+
数学运算符,加操作
-
数学运算符,减操作或者对一个值取反
*
数学运算符,乘操作
/ or div
数学运算符,除操作
% or mod
数学运算符,模操作(取余)
== or eq
逻辑运算符,判断符号左右两端是否相等,如果相等返回true,否则返回false
!= or ne
逻辑运算符,判断符号左右两端是否不相等,如果不相等返回true,否则返回false
< or lt
逻辑运算符,判断符号左边是否小于右边,如果小于返回true,否则返回false
> or gt
逻辑运算符,判断符号左边是否大于右边,如果大于返回true,否则返回false
<= or le
逻辑运算符,判断符号左边是否小于或者等于右边,如果小于或者等于返回true,否则返回false
>= or ge
逻辑运算符,判断符号左边是否大于或者等于右边,如果大于或者等于返回true,否则返回false
&& or and
逻辑运算符,与操作赋。如果左右两边同为true返回true,否则返回false
|| or or
逻辑运算符,或操作赋。如果左右两边有任何一边为true返回true,否则返回false
! or not
逻辑运算符,非操作赋。如果对true取运算返回false,否则返回true
empty
用来对一个空变量值进行判断: null、一个空String、空数组、 空Map、没有条目的Collection集合
func(args)
调用方法, func是方法名,args是参数,可以没有,或者有一个、多个参数.参数间用逗号隔开
一个EL表达式可以包含:数字、文本(在单引号或者双引号之间)、布尔值、null值。
分享到:
相关推荐
3. 进行算术操作:EL 表达式可以进行算术操作,例如加、减、乘、除等。 例如:${45+36} 计算 45 和 36 的和 JSTL 标签库(JavaServer Pages Standard Tag Library)是一种在 JSP 页面中使用的标签库,用于简化 JSP...
表单中的输入元素和选择项应与JSTL标签相配合,以便正确获取和处理用户输入。 6. **错误处理**:为了提高用户体验,还需要考虑错误处理,例如检查输入是否为空、是否为数字、运算符是否有效等。这可以通过`<c:if>`...
**第四节:JSTL标签库介绍** JSTL包括多个标签库,如Core、XML、Function、I18N和SQL。本文档主要关注Core和XML两个处理标签库。 **第二章:JSTL Core标签库** Core标签库提供了大量用于处理页面逻辑的标签。 **第...
#### 四、JSTL标签库 JSTL(JavaServer Pages Standard Tag Library)是一组标准标签库,用于简化JSP页面的开发。JSTL提供了一系列丰富的标签,可以帮助开发者处理循环、条件判断、国际化等功能,进一步提高了JSP...
- JSP页面:使用EL表达式或者JSTL标签访问JavaBean的计算结果,并将其显示在页面上。 这种结构的好处在于提高了代码的可维护性和可读性。JavaBeans使业务逻辑更清晰,Servlet处理HTTP请求和响应,而JSP专注于视图...
EL的全名为Expression Language,它最初只能在JSTL标签中使用,例如: ```jsp ${3+7}"/> <p>Hi!${username} ``` 上述代码计算3加7的结果为10,并输出用户名。 到了JSP2.0之后,EL正式成为标准规范,可以在JSP网页...
在这个计算器应用中,JSP页面可能包含输入字段(用于接收数字输入)和按钮(执行加、减、乘、除等操作),以及显示计算结果的区域。 Javabean是一种符合JavaBeans规范的Java类,它封装了数据和行为,可以被其他Java...
这涉及到了事件处理和自定义函数,通过将操作作为参数传递给函数,可以实现加、减、乘、除的逻辑,提高代码复用性。 随着课程的深入,我们看到JavaScript的使用逐渐扩展到DOM操作、表单验证、自定义服务器实现,...
这个项目的主要目的是实现一个功能完备的Web应用程序,让用户能够通过浏览器进行基本的数学运算,如加、减、乘、除等。让我们深入探讨一下这个项目涉及到的Java Web开发相关知识点。 1. **Servlet与JSP**: - ...
【小计算器实现】:此项目中,用户可能通过一个简单的HTML表单输入两个数字和选择运算符(加、减、乘、除),然后提交请求到服务器。Servlet接收到请求后,解析参数,执行相应的数学运算,然后将结果返回给JSP页面。...
**EL(Expression Language)表达式**是JavaServer Pages (JSP) 2.0及更高版本中的一个核心组件,用于...在实际项目中,结合使用EL和JSP标准标签库(JSTL),可以实现更加高效的MVC模式,降低Java Web开发的复杂度。
- 取小数点前两位并四舍五入可以使用`Math.round()`结合适当的乘除法运算来实现。 4. **日期和时间**: - 使用`Calendar`类或`LocalDate`/`LocalTime`等类可以获取当前的年月日、小时分秒。 - 获取从1970年到现在...
- 算术操作符:`+`, `-`, `*`, `/`, `%`分别对应加、减、乘、除、取模。 - 逻辑操作符:`==`, `!=`, `, `>`, `, `>=`, `&&`, `||`, `!`以及`empty`用于比较和逻辑运算。 3. **函数**: JSP EL支持自定义标签库...
在Web开发领域,"Calculator"通常指的是一个交互式的数字计算工具,用户可以通过浏览器界面进行加、减、乘、除等基本运算。 【描述】中的"使用Spring MVC创建计算器Web应用程序"进一步明确了这个项目的技术栈。...