javaweb编程课件第8章.ppt
《javaweb编程课件第8章.ppt》由会员分享,可在线阅读,更多相关《javaweb编程课件第8章.ppt(55页珍藏版)》请在三一办公上搜索。
1、Java Web 编程技术,第8章 使用表达式语言,本章主要内容:8.1 理解表达式语言 8.2 使用EL运算符 8.3 使用EL访问数据 8.4 在EL中使用函数 8.5 在JSP页面中禁用EL 8.6 小 结,8.1 理解表达式语言,8.1.1 表达式语言的调用8.1.2 表达式语言的功能8.1.3 表达式语言与JSP表达式的区别,在JSP 2.0的页面中,我们使用下面形式的元素调用表达式语言:$expressionEL可以出现在JSP页面的模板文本中,也可以出现在JSP标签的属性中。下面是在JSP模板文本中使用表达式:客户名:$customer.custName Email地址:$cus
2、tomer.email,8.1.1 表达式语言的调用,下面是在JSP标准动作的属性中使用EL表达式:,(1)提供了一组简单的运算符。表达式语言提供了一组简单有效的运算符,通过这些运算符可以完成算术、关系、逻辑、条件或空值检查运算。(2)对作用域变量的方便访问。作用域变量是使用setAttribute()方法存储在PageContext、HttpServletRequest、HttpSession或ServletContext作用域中的对象,可以简单地使用下面的形式访问:$userName,8.1.2 表达式语言的功能,(3)对JavaBeans对象访问的简单表示。在JSP页面中要访问一个Jav
3、aBean对象customer的custName属性,需要下面的语法:而使用EL表达式,可以表示为:$customer.custName(4)对集合元素的简单访问。集合包括数组、List对象、Map对象等,对这些对象的元素的访问可以使用下面的简单形式:$variableindexOrKey,(5)对请求参数、Cookie和其他请求数据的简单访问。如要访问Accept请求头,可以使用header隐含变量,如下所示:$header.Accept或$headerAccept(6)提供了在EL中使用Java函数的功能。EL中不能定义和使用变量,也不能调用对象的方法,但可以通过标签的形式使用Java语言
4、定义的函数。,JSP表达式的使用格式为:这里的expression为合法的Java表达式,它属于脚本语言的代码。在expression中可以使用由脚本声明的变量。EL表达式的格式为:$expression这里的expression是符合EL规范的表达式,并且不需要包含在标签内的。在EL表达式不能使用脚本中声明的变量。,8.1.3 表达式语言与JSP表达式的区别,使用传统的脚本语言,很容易在JSP中声明变量,使用的标签为,例如:这里声明了一个整型变量,接下来使用下面的JSP表达式语句,这将输出变量count的值为100:The count value is:而如果使用下面的语句,将返回一个空值,
5、即用EL的empty运算符测试结果为true。The count value is:$count在EL中不能定义变量,也不能使用脚本中声明的变量,但它可以访问请求参数、作用域变量、JavaBeans以及EL隐含变量等。,8.2.1 EL算术运算符8.2.2 EL关系与逻辑运算符8.2.3 条件运算符8.2.4 empty运算符8.2.5 属性与集合元素访问运算符,8.2 使用EL运算符,8.2.1 EL算术运算符,在EL表达式中还可以使用“e”在浮点数中表示幂运算,例如:$1.5e6/1000000 的结果为 1.5;$1e6*1 的结果为 1000000.0。这些操作在执行时调用类中的方法,
6、但是要注意操作结果的数据类型。例如,定点数和浮点数的运算结果总是浮点数值。类似地,低精度的值与高精度的值进行运算,如一个Integer的值与一个BigInteger的值相加,总是得到一个高精度的值。,与数值一样,String对象上也可以使用算术运算符,只要String对象能够转换为数值即可,例如:$16*4 的结果为 64,字符串被转换成整数16;$a div 4 的结果为 0.0,a没有定义,它的默认值为0;$a div 4 将产生编译错误,字符串“a”不能和数值运算。,8.2.1 EL算术运算符8.2.2 EL关系与逻辑运算符8.2.3 条件运算符8.2.4 empty运算符8.2.5 属
7、性与集合元素访问运算符,8.2 使用EL运算符,8.2.2 EL关系与逻辑运算符,8.2.2 EL关系与逻辑运算符,在EL中不允许使用Java的流程控制语句,如if、for及while,因此,逻辑表达式的使用是直接显示表达式的boolean值。,EL的条件运算符的语法是:expression?expression1:expression2表达式的值是基于expression的值,它是一个boolean表达式。如果expression的值为true,则返回expression1结果;如果expression的值为false,则返回expression2的结果。例如:$(5*5)=25?1:0 的
8、结果为 1;$(3 gt 2)&!(12 gt 6)?Right:Wrong 的结果为Wrong;$(14 eq 14.0)&(14 le 16)?Yes:No 的结果为Yes;$(4.0 ne 4)|(100=10)?1:0 的结果为 0。,8.2.3 条件运算符,empty运算符的使用格式为:$empty expression它判断expression的值是否为null、空字符串、空数组、空Map或空集合,若是则返回true,否则返回false。,8.2.4 empty运算符,属性访问运算符用来访问对象的成员,集合访问运算符用来检索Map、List或数组对象的元素。这些运算符在处理隐含变量
9、时特别有用。在EL中,这类运算符有下面两个:点号(.)运算符。方括号()运算符。,8.2.5 属性与集合元素访问运算符,1.点号(.)运算符点号运算符用来访问Map对象一个键的值或bean对象的属性值,例如:param是EL的一个隐含对象,它是一个Map对象,下面代码返回param对象username请求参数的值:$param.username再比如,假设customer是CustomerBean类的一个实例,下面代码访问该实例的custName属性值:$customer.custName,2.方括号()运算符方括号运算符除了可以访问Map对象键值和bean的属性值外,还可以访问List对象和
10、数组对象的元素。例如:$param username或$param username$customercustName程序8.1 eloperator.jsp代码运行结果,8.3.1 访问作用域变量8.3.2 访问JavaBeans属性8.3.3 访问集合元素,8.3 使用EL访问数据,在JSP页面中,可以使用JSP表达式访问作用域变量。一般做法是:在Servlet中使用setAttribute()方法将一个变量存储到某个作用域对象上,如HttpServletRequest、HttpSession及ServletContext等。然后使用RequestDispatcher对象的forward(
11、)方法将请求转发到JSP页面,在JSP页面中调用隐含变量的getAttribute()方法返回作用域变量的值。,8.3.1 访问作用域变量,使用EL就可以更方便地访问这些作用域变量。要输出作用域变量的值,只需在EL中使用变量名即可,例如:$variable_name对该表达式,容器将依次在页面作用域、请求作用域、会话作用域和应用作用域中查找名为variable_name的属性。如果找到该属性,则调用它的toString()方法并返回属性值。如果没有找到,则返回空字符串(不是null)。程序8.2 VariableServlet.java 程序8.3 variables.jsp,设有一个名为的J
12、avaBeans,它有一个名为custName的属性。在JSP页面中如果需要访问custName属性,应使用下面代码实现:这里使用了pageContext的findAttribute()方法查找名为customer的属性,使用JSP表达式输出custName的值,但是如果找不到指定的属性,上面的代码会抛出NullPointerException异常。,8.3.2 访问JavaBeans属性,如果知道JavaBeans的完整名称和它的作用域,也可以使用下面JSP标准动作访问JavaBeans的属性:,如果使用表达式语言,就可以通过点号表示法很方便地访问JavaBeans的属性,如下所示:$cus
13、tomer.custName使用表达式语言,如果没有找到指定的属性不会抛出异常,而是返回空字符串。,使用表达式语言还允许访问嵌套属性。例如,如果CustomerBean有一个address属性,它的类型为AddressBean,而AddressBean又有zipCode属性,则可以使用下面简单形式访问zipCode属性:$上面的方法不能使用和实现。下面通过一个示例来说明对JavaBeans属性的访问。该例中有两个JavaBeans,分别为AddressBean,它有三个字符串类型的属性,city、street和zipCode;CustomerBean是在前面的类的基础上增加了一个Address
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javaweb 编程 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6509599.html