javawebel表达式语言详解.docx

上传人:b****6 文档编号:3082405 上传时间:2022-11-17 格式:DOCX 页数:12 大小:27.67KB
下载 相关 举报
javawebel表达式语言详解.docx_第1页
第1页 / 共12页
javawebel表达式语言详解.docx_第2页
第2页 / 共12页
javawebel表达式语言详解.docx_第3页
第3页 / 共12页
javawebel表达式语言详解.docx_第4页
第4页 / 共12页
javawebel表达式语言详解.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

javawebel表达式语言详解.docx

《javawebel表达式语言详解.docx》由会员分享,可在线阅读,更多相关《javawebel表达式语言详解.docx(12页珍藏版)》请在冰豆网上搜索。

javawebel表达式语言详解.docx

javawebel表达式语言详解

JavaWeb----EL(表达式语言)详解

分类:

 JavaWeb2021-08-1512:

42 3019人阅读 评论(0) 收藏 举报

ExpressionLanguageJavaWebEL

 JavaWeb中的EL〔表达式语言〕详解

       表达式语言(ExpressionLanguage)简称EL,它是JSP2.0中引入的一个新内容。

通过EL可以简化在JSP开发中对对象的引用,从而标准页面代码,增加程序的可读性及可维护性。

EL为不熟悉Java语言页面开发的人员提供了一个开发JavaWeb应用的新途径。

下面对EL的语法、运算符及隐含对象进展详细介绍。

一、EL概述

1、EL简介

      EL没出现之前,开发JavaWeb应用程序时,经常需要将大量的Java代码片段嵌入到JSP页面中,这会使页面开起来很乱,如下例子:

[php] viewplaincopyprint?

1.<%if(session.getAttribute(“username〞)!

= null){  

2.  

3.       out.println(session.getAttribute(“username〞).toString());  

4.  

5.}%>  

       而是用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效劳器可以支持Servlet2.4/JSP2.0,就可以在JSP页面中直接使用EL。

由于在JSP2.0以前版本中没有EL,所以JSP为了和以前的标准兼容,还提供了禁用EL的方法。

有以下三种方法:

      1)、使用斜杠〞\〞

       只需要在EL的起始标记“$〞前加上〞\〞即可;

      2)、使用page指令

       使用JSP的page指令也可以禁用EL表达式,语法格式如下;

      <%@pageisELIgnored=〞布尔值〞%>  true为禁用EL

      3)、在web.xml文件中配置元素

[html] viewplaincopyprint?

1.  

2.  

3.         

4.  

5.              *.jsp  

6.  

7.              true  

8.  

9.         

10.  

11.  

3、保存的关键字

      EL中保存的关键字如下,在为变量命名时,应该防止使用这些关键字:

and

eq

gt

instanceof

div

or

le

false

empty

not

Lt

ge

二、EL的运算符使用

      EL的运算符在按照从左向右的计算原那么下,优先级如下:

1、通过EL访问数据

       通过EL提供的〞[]〞和〞.〞运算符可以访问数据。

通常情况下这两个运算符是等价的,可以互相代替。

       但也不是所有情况下都可以互相代替,例如当对象的属性名中包含一些特殊的符号(-或.)时,就只能使用[]来访问对喜欢那个的属性。

例如${userInfo[user-id]}是正确的,而${userInfo.user-name}是错误的。

       下面给出通过这两运算符访问数据的例子:

      1)、获取数组元素(只能使用[],不能用.)

[html] viewplaincopyprint?

1.<%  

2.  

3.       String[] str = {"一号" , "二号" , "三号" , "四号" , "五号"};  

4.  

5.       request.setAttribute("user",str);  

6.  

7.%>  

8.  

9.<%  

10.  

11.       String[] str1 =(String[])request.getAttribute("user");  

12.  

13.       for(int i=0; i < ; i++){  

14.  

15.              request.setAttribute("rt",i);  

16.  

17.%>  

18.  

19.       ${rt}:

 ${user[rt] }
  

20.  

21.<% }%>  

      2)、List集合元素的获取(只能使用[],不能用.)

      

[html] viewplaincopyprint?

1.<%  

2.  

3.       List list = 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.       List list1 =(List)session.getAttribute("user");  

18.  

19.       for(int i = 0 ; i < () ;i++){  

20.  

21.              request.setAttribute("rt",i);  

22.  

23.%>  

24.  

25.       ${rt}:

 ${user[rt] }
  

26.  

27.<%  }%>  

2、在EL中进展算术运算

运算符

功能

例如

结果

+

${1+1}

2

-

${1-1}

0

*

${2*2}

4

/或div

${2/1}或${2div1}

2

${2/0}或${2div0}

Infinity

%或 mod

求余

${3%2}或${3mod2}

1

${3%0}或${3mod0}

异常:

java.lang.ArithmeticException:

/byzero

3、在EL中判断对象是否为空

       通过empty运算符实现,用来确定一个对象或比那辆是否为null或空,格式如下:

             ${emptyexpression}

例如:

[html] viewplaincopyprint?

1.<%request.setAttribute("user" , "");%>  

2.  

3.         <%request.setAttribute("user1"  , null);%>  

4.  

5.         <%request.setAttribute("user2"  , 2);%>  

6.  

7.         ${emptyuser}       //返回值为true  

8.  

9.         ${emptyuser1}     //返回值为true  

10.  

11.         ${emptyuser2}    //返回值为false  

4、在EL中进展逻辑关系运算

       在EL中,通过逻辑运算符和关系运算符可以实现逻辑关系运算。

其使用方法都差不多,下面给出一个例子:

[html] viewplaincopyprint?

1.<%  

2.  

3.       request.setAttribute("userName","小武");  

4.  

5.       request.setAttribute("pwd","123456");  

6.  

7.%>  

8.  

9.userName= ${userName }
  

10.  

11.pwd= ${pwd }
  

12.  

13.\${userName!

= "" and (pwd == "asd" )}  

14.  

15.${userName!

= "" and (pwd == "asd" )}
  

16.  

17.\${userName== "小武" and pwd == "123456" }  

18.  

19.${userName== "小武" and pwd == "123456" }
  

5、在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对象后,就可以通过该对象获取与客户端相关的信息。

例如要访问ge

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1