JavaWeb-EL(表达式语言)详解.docx_第1页
JavaWeb-EL(表达式语言)详解.docx_第2页
JavaWeb-EL(表达式语言)详解.docx_第3页
JavaWeb-EL(表达式语言)详解.docx_第4页
JavaWeb-EL(表达式语言)详解.docx_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java Web-EL(表达式语言)详解分类:Java Web2013-08-15 12:423019人阅读评论(0)收藏举报Expression LanguageJava WebELJava Web中的EL(表达式语言)详解表达式语言(Expression Language)简称EL,它是JSP2.0中引入的一个新内容。通过EL可以简化在JSP开发中对对象的引用,从而规范页面代码,增加程序的可读性及可维护性。EL为不熟悉Java语言页面开发的人员提供了一个开发Java Web应用的新途径。下面对EL的语法、运算符及隐含对象进行详细介绍。一、EL概述1、EL简介 EL没出现之前,开发Java Web应用程序时,经常需要将大量的Java代码片段嵌入到JSP页面中,这会使页面开起来很乱,如下例子:phpview plaincopyprint?1. 而是用EL则只需要下面的依据代码即可实现: $username通过上面的例子我们可以知道,EL表达式的语法非常简单,它以”$”开头,以”结束,中间为合法的表达式,具体的语法格式为: $expression expression用于指定要输出的内容,可以使字符串,也可以是由EL运算符组成的表达式。例如在EL表达式中要输出一个字符串,可以将此字符串放在一对单引号或双引号内: $我叫小武灵灵或$“我叫小武灵灵”EL有以下几个特点: EL可以与JSTL结合使用,也可以与JavaScript语句结合使用; EL中会自动进行类型转换。如果想通过EL输入两个字符串型数值的和,可以直接通过”+”号进行连接,如$num1+num2; EL不仅可以访问一般变量,还可以访问JavaBean中的属性以及嵌套属性和集合对象; 在EL中可以获得命名空间(PageContext对象,它是页面中所有其他内置对象的最大范围的集成对象,通过它可以访问其他内置对象); 在使用EL进行除法运算时,如果除数为0,则返回无穷大Infinity,而不是错误; 在EL中可以访问JSP的作用域(request、session、application以及page); 扩展函数可以与Java类的静态方法进行映射。2、与低版本的环境兼容禁用EL目前只要安装的Web服务器能够支持Servlet 2.4/JSP 2.0,就可以在JSP页面中直接使用EL。由于在JSP2.0以前版本中没有EL,所以JSP为了和以前的规范兼容,还提供了禁用EL的方法。有以下三种方法: 1)、使用斜杠”只需要在EL的起始标记“$”前加上”即可; 2)、使用page指令使用JSP的page指令也可以禁用EL表达式,语法格式如下; true为禁用EL 3)、在web.xml文件中配置元素htmlview plaincopyprint?1. 2. 3. 4. 5. *.jsp6. 7. true8. 9. 10. 11. 3、保留的关键字 EL中保留的关键字如下,在为变量命名时,应该避免使用这些关键字:andeqgtinstanceofdivorlefalseemptynotLtge二、EL的运算符使用 EL的运算符在按照从左向右的计算原则下,优先级如下:1、通过EL访问数据通过EL提供的”和”.”运算符可以访问数据。通常情况下这两个运算符是等价的,可以相互代替。但也不是所有情况下都可以相互代替,例如当对象的属性名中包含一些特殊的符号(-或.)时,就只能使用来访问对喜爱那个的属性。例如$userInfouser-id是正确的,而$userInfo.user-name是错误的。下面给出通过这两运算符访问数据的例子: 1)、获取数组元素(只能使用,不能用.)htmlview plaincopyprint?1. 8. 9. %10. 11. Stringstr1=(String)request.getAttribute(user);12. 13. for(inti=0;i18. 19. $rt:$userrt20. 21. 2)、List集合元素的获取(只能使用,不能用.)htmlview plaincopyprint?1. %2. 3. Listlist=newArrayList();4. 5. list.add(一号);6. 7. list.add(二号);8. 9. list.add(三号);10. 11. session.setAttribute(user,list);12. 13. %14. 15. %16. 17. Listlist1=(List)session.getAttribute(user);18. 19. for(inti=0;i24. 25. $rt:$userrt26. 27. 2、在EL中进行算术运算运算符功能示例结果+加$1+12-减$1-10*乘$2*24/或div除$2/1或$2 div 12$2/0或$2 div 0Infinity%或mod求余$3%2或$3mod21$3%0或$3 mod0异常:java.lang.ArithmeticException:/by zero3、在EL中判断对象是否为空通过empty运算符实现,用来确定一个对象或比那辆是否为null或空,格式如下: $empty expression例如:htmlview plaincopyprint?1. 2. 3. 4. 5. 6. 7. $emptyuser/返回值为true8. 9. $emptyuser1/返回值为true10. 11. $emptyuser2/返回值为false4、在EL中进行逻辑关系运算在EL中,通过逻辑运算符和关系运算符可以实现逻辑关系运算。其使用方法都差不多,下面给出一个例子:htmlview plaincopyprint?1. 8. 9. userName=$userName10. 11. pwd=$pwd12. 13. $userName!=and(pwd=asd)14. 15. $userName!=and(pwd=asd)16. 17. $userName=小武andpwd=12345618. 19. $userName=小武andpwd=1234565、在EL中进行条件运算在EL中进行条件运算,唯一的优点在于其非常简单方便,和Java语言中的用法完全一致,其语法格式如下: $条件表达式? 表达式1: 表达式2例如:$1=1 ? “对”:“错“三、EL的隐含对象为了能够获得Web应用程序中的相关数据,EL提供了11个隐含对象,这些对象类似于JSP的内置对象,也是直接通过对象名进行操作。1、页面上下文对象 pageContext用于访问JSP内置对象和servletContext。在获取到这些内置对象后,就可以获取器属性值。这些属性与对象的gexxx()方法相对象,在使用时,去掉方法名中的get,并将首字母改为小写即可。下面介绍如何应用页面上下文对象访问你JSP的内置对象和servletContext对象。 1)、访问request对象$pageContext.request获取到request对象后,就可以通过该对象获取与客户端相关的信息。例如要访问getServerPort()方法,可以使用下面的代码: $pageContext.request.serverPort注意不可以通过pageContext对象获取保存到request范围内的变量。 2)、访问response对象$pageContext.response 3)、访问out对象$pageContext.out 4)、访问session对象$pageContext.session 5)、访问exception对象$pageContext.exception 6)、访问page对象$pageContext.page 7)、访问servletContext对象$pageContext.servletContext2、访问作用域范围的隐含对象在EL中提供了4个用于访问作用域范围的隐含对象,即pageScope、requestScope、sessionScope和applicationScope。应用这4个隐含对喜爱那个指定要查找的标识符的作用域后,系统将不再按照默认的顺序(page、request、session及application)来查找相应的标识符。他们与JSP中的page、request、session及application内置对象类似。只不过这4个隐含对象只能用来取得指定范围内的属性值,而不能取得其他相关信息。 1)、pageScope隐含对象 pageScope对象用于返回包含page(页面)范围内的属性的集合,返回值为java.util.Map对象。下面是一个具体例子,通过pageScope对象读取page范围内的JavaBean属性值。新建JavaBean为UserInfo:javaview plaincopyprint?1. packagecom;2. 3. publicclassUserInfo4. 5. privateStringname=;6. 7. publicvoidsetName(Stringname)8. 9. =name;10. 11. 12. 13. publicStringgetName()14. 15. returnname;16. 17. 18. 19. Index.jsp添加:htmlview plaincopyprint?1. 2. 3. 4. 5. 6. 7. $pageS8. 9. 2)、requestScope隐含对象用于返回包含request范围内的属性值的集合,返回值为java.util.Map对象。例如:htmlview plaincopyprint?1. 6. 7. $requestScope.userName 3)、sessionScope隐含对象用于返回包含session范围内的属性值的集合。例如:htmlview plaincopyprint?1. applicationapplication6. 7. $sessionScope.userName 4)、applicationScope隐含对象用于返回包含application范围内的属性值的集合。例如:、htmlview plaincopyprint?1. 6. 7. applicationScope.userName3、访问环境信息的隐含对象 EL中提供了6个访问环境信息的隐含对象,分别为: 1)、param对象用于获取请求参数的值,应用在参数值只有一个的情况,返回结果为字符串。例如:htmlview plaincopyprint?1. 2. 3. 4. 5. 6. 7. 8. 9. $param.user 2)、paramValues对象如果一个请求参数名对应多个值,则需要使用paramValues对象获取请求参数的值,该对象返回的结果为数组。例如:htmlview plaincopyprint?1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 选择的是:$paramValues.affect0$paramValues.affect1$paramValues.affect2$paramValues.affect3 3)、header和headerValues对象用于获取HTTP请求的一个具体的header值,当同一个header存在多个值时需使用headerValues对象。例如: $header“connection”获取HTTP请求的header的是否需要持久

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论