JSP——EL表达式学习笔记

使用EL表达式

El概述:

       EL Expression  Language 的简称,意思是表达式语言,它是JSP2.0中引入的一种计算和输出java对象的简单语言。


使用EL表达式的前提条件:要求Web服务器能够支持Servlet 2.4 / JSP 2.0 规范。


JSP中禁用EL表达式的3种方法:

1、 使用斜杠 ” \ ” 符号。

具体语法为: \${expression}

注:该语法适合只是禁用页面中的一个或几个EL表达式的情况。

2、 使用page指令。

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

<%@  page  isELIgnored=true|false  %>

注:该方法适合禁用一个页面中的EL表达式。

3、 在web.xml文件中配置<el-ignored>元素。

在web.xml中文件中配置<el-ignored>元素禁用EL表达式的具体代码如下:

<jsp-config>

        <jsp-property-group>

               <url-pattern>*.jsp</url-pattern>

               <el-ignored>true</el-ignored>

        </jsp-property-group>

</jsp-config>

 

注:该方法适用于禁用web应用中的所有jsp页面中的EL表达式。

 

EL表达式的基本语法:

       EL表达式语法以 “${” 开头,以 “}” 结束,中间为合法的表达式。语法格式如下:

<body>

       ${expression}

</body>

 

EL表达式的存取范围:

       当EL表达式中的变量没有指定范围时,系统默认从page范围中查找,然后依次在request、session及appliction范围内查找。

       在要输出表达式的前面加入指定存取范围的前缀即可指定该变量的存取范围。如图:

 

EL表达式中使用变量范围前缀

范围

前缀

举例说明

page

pageScope

${pageScope. name}表示在page范围内查找变量name

request

requestScope

${requestScope. name}表示在requeste范围内查找变量name

session

sessionScope

${sessionScope. name}表示在session范围内查找变量name

application

applicationScope

${applictionScope. name}表示在application范围内查找变量name


EL表达式的运算符:

       EL表达式提供了存取数据运算符、算术运算符、关系运算符、逻辑运算符、条件运算符及empty运算符。

       1、存取数据运算符。

在EL表达式中可以使用运算符 ”[]” ”.” 来取得对象的属性。例如${user.name}或者${user[name]}都表示获取对象user中的name属性值。

          在EL表达式中可以使用 ”[]” 运算符来读取数组、Map、List或者对象容器中的数据。

A、数组元素的获取

应用 ”[]” 运算符可以获取数组的指定元素。例如,在request域中保存一个包含5个元素的一维数组,并应用EL表达式获取数组中的第三个元素。代码如下:

<%

String[]username = {“小明”, “小东”,“小红”, “小丽”,“小柯”};

request.setAttribute(“user”,username);

%>

${requestScope.user[2]}

 

B、 List集合元素的获取

应用 ”[]” 运算符可以获取List集合中的指定元素。例如,在session域中保存一个包含3个元素的List集合对象,并应用EL表达式输出该集合的第2个元素。代码如下:

<%

Listlist = new ArrayList();

list.add(“小明”);

list.add(“小东”);

list.add(“小红”);

session.setAttribute(“userlist”,list);

%>

${sessionScope.userlist[1]}

        

C、Map集合元素的获取

应用 ”[]” 运算符可以获取Map集合中的指定元素。例如,在session域中保存一个3个键值的Map集合对象,并应用EL表达式输出该集合的第2个元素。代码如下:

<%

Mapmap = new HashMap();

map.put(“1”,”小明”);

map.put(“2”,”小东”);

map.put(“3”,”小红”);

application.setAttribute(“usermap”,map);

%>

${sessionScope.usermap[“2”]}

 

      2、算术运算符:

EL表达式的算术运算符

运算符

功能

举例说明

+

${6+1}返回值为7

-

${7-1}返回值为6

*

${11.5*10}返回值为115.0

/ 或div

${8/2}或${8 div 2}返回值为4

% 或mod

求余

${9%2}或${9 mod 2}返回值为1

 

         3、关系运算符:

EL表达式的关系运算符

运算符

功能

举例说明

== 或eq

等于

${2==1}或${2 eq 1}返回false ;     ${“A”==”A”}返回true

!= 或ne

不等于

${2!=1}或${2 ne 1}返回true;       ${“A”!=”A”}返回false

< 或lt

小于

${6<5}或${6 lt 5}返回false;        ${“A”<”B”}返回true

> 或gt

大于

${6>5}或${6 gt 5}返回true;        ${“A”>”B”}返回false

<= 或le

小于等于

${2<=1}或${2 le 1}返回false       ${“A”<=”B”}返回true

>= 或 ge

大于等于

${2>=1}或${2 ge 1}返回true       ${“A”>=”B”}返回false

 

         4、逻辑运算符:

                A、&&或and运算符

                    &&或and运算符为与运算符,只有在两个操作数均为true时,结果才为true,否则为false。示例代码如下:

      <body>

      ${username == “root” && password== “123”}

     </body>

     只有username为root,且password为123时,结果才为true。

 

                B、|| 或or运算符

                       || 或or运算符为或运算符,只要有一个操作数的值为true,结果就为true。只有全部操作数为false时,结果才为false。示例代码如下:

      <body>

      ${username == “root” || password == “123”}

     </body>

     只要username为root,或password为123,结果就为true。

 

         C、! 或not运算符

             ! 或 not运算符为非运算符,即对操作数进行取反。示例代码如下:

        <body>

       ${! username == “root”}

       </body>


5、empty运算符:

          在EL表达式中,empty运算符位于操作数前方,被用来确定一个对象或变量是否为null或空。empty语法如下:

          <body>

         ${empty expression}

         </body>

注:一个变量或对象为null或空代表的是不同的意义,null表示这个变量没有指明任何对象,而空表示这个变量所属的对象的内容为空,如空字符串,空的数组或空的List容器。


      6、条件运算符:

                EL表达式中可以利用条件运算符进行条件求值,语法格式如下:

       <body>

      ${empty user ? “user为空”: user}

      </body>


运算符的优先级:

EL表达式各运算符的优先级

优先级

运算符

 

 

 

 

 

[]

()

- (负号)、not、!、empty

*、/、div、%、mod

+ (加号)、- (减号)

<、>、<=、>=、lt、gt、le、ge

==、!=、eq、nq

&&、and

||、or

? :/


EL表达式中的保留字:

EL表达式中的保留字

and

eq

gt

true

instanceof

div

or

ne

le

false

lt

empty

mod

not

ge

null

 

El表达式中的隐含对象:

EL表达式中的隐含对象

类别

隐含对象

说明

页面上下文对象

pageContext

用于访问JSP内置对象

 

 

访问环境信息的隐含对象

param

包含页面所有参数的名字和对应的值的集合

paramValues

包含页面所有参数的名字和对应多个值的集合

header

包含每个header名和值的集合

headerValues

包含每个header名和可能的多个值的集合

cookie

包含每个cookie名和值的集合

initParam

包含Servlet上下文初始参数名和对应值的集合

 

访问作用域范围的隐含对象

pageScope

包含page(页面)范围内的属性值的集合

requestScope

包含request(请求)范围内的属性值的集合

sessionScope

包含session(会话)范围内的属性值的集合

applicationScope

包含application(应用)范围内的属性值的集合

 

       1、pageContext对象

          pageContext隐含对象用于访问Jsp内置对象,如request、response、session、out、config和ServletContext等。例如,要获取当前session中的变量username,EL表达式为:

       <body>

      ${pageContext.session.username}

      </body>

 

       2、param和paramValues对象

          param对象用于获取请求参数的值,如果一个参数名对应多个值,则需要使用paramValues对象获取请求参数的值。在应用param对象时,返回的结果为字符串;在应用paramValues对象时,返回的结果为数组。


       3、header和headerValues对象

          header对象用于获取HTTP请求的一个具体的header值,但在有些情况下,可能存在同一个header拥有多个不同的值,这时就需要使用headerValues对象。


 

       4、访问作用域范围的隐含对象

          EL表达式提供了4个用于访问作用域范围的隐含对象,即pageScope、requestScope、sessionScope、applicationScope,这4个对象用来查找特定作用域的标志符。例如,要获取session范围内user变量的值,EL表达式为:

       <body>

    ${sessionScope.user}

       </body>


       5、cookie对象



       6、initParam对象

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值