九 EL表达式

1EL的语法

${expr}

Expr 可以是常量 “helloword

           变量

隐含对象

pageScope page

requestScope request

sessoinScope session

applicationScope application

2[ ].运算符

EL 提供“.“和“[ ]“两种运算符来存取数据。

下列两者之间的关系是等价的:

如:${sessionScope.user.name}    ${sessionScope.user[“name”]}

 

== eq 等于 != ne 不等于

gt 大于 < lt 小于 = ge 大于等于 <= le 小于等于

如果 要获取的属性名中包含有特殊字符.” 只能用[] 方式获取

3、变量

EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。

因为我们并没有指定哪一个范围的username,所以它会依序从PageRequestSessionApplication范围查找。

假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null

属性范围在EL中的名称

  PageContext      pageScope

  Request          requestScope

  Session          sessionScope

  Application       applicationScope

  Parameter        param 请求参数

 

EL 其他的隐含对象

跟范围相关  内置对象的属性范围

pageScope  requestScope sessionScope applicationScope

跟请求参数相关的

param 返回一个

paramValues 返回相同属性名的数组  取数组中的值${ paramValues.username[0]}

 

Cookie  保存在本地硬盘 用跟踪客户的行为  包含跟cookie相关的信息

${cookie.JSESSIONID} 拿到的是session对象 ${cookie.JSESSIONID.value} key ---value

${cookie} 返回cookie中的 所有的内容

 

header headerValues 跟浏览器相关的信息

 

${header[“User-Agent”]}  返回的是一个浏览器的版本信息

 

initParam  获取web站点的环境参数(context-param) 指的就是

<context-param>

<param-name>hello</param-name>

<param-value>你好</param-value>

</context-param>

pageContext 获取跟页面相关的信息  url

${pageContext.request.remoteAddr}获取请求用户的ip

EL运算符

算数运算符 + - * / %

比较运算符 > gt <lt  >=ge  <=le  ==eq  !=ne

逻辑运算符 &&and  ||or  not

 

其他的运算符 empty 判断是否为空 ${not empty a}

?:三目运算符 ${2>3 ? “aaa “:” bbb”}

() 改变优先级 ${2*(2+3)}

 

 

 

4、特别强调

1、注意当表达式根据名称引用这些对象之一时,返回的是相应的对象而不是相应的属性。例如:即使现有的 pageContext 属性包含某些其他值,${pageContext} 也返回 PageContext 对象。

2、注意<%@ page isELIgnored="true" %>表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言。

5、举例说明

1、例如,< %=request.getParameter(username)% >等价于${ param.username }

 

2、例如,但是下面的那句EL语言可以完成如果得到一个username为空,则不显示null,而是不显示值。

<%=user.getAddr( ) %>等价于${user.addr}

 

3、例如:<% =request.getAttribute(userlist) %>等价于$ { requestScope.userlist }

 

4、例如,原理如上例3

 

${ requestScope.userlist } 1

 

${ sessionScope.userlist } 2

 

${ applicationScope.userlist } 3

 

${ pageScope.userlist } 4

 

${userlist} 含义:执行顺序为4 1 2 3

 

.”后面的只是一个字符串,并不是真正的内置对象,不能调用对象。

 

5、例如,<%=user.getAddr( ) %>等价于${user.addr},第一句前面的user,为一个变量。第二句后面user,必须为在某一个范围里的属性。

 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值