收藏 分享(赏)

EL详解25189.doc

上传人:hwpkd79526 文档编号:9295102 上传时间:2019-08-01 格式:DOC 页数:6 大小:29.50KB
下载 相关 举报
EL详解25189.doc_第1页
第1页 / 共6页
EL详解25189.doc_第2页
第2页 / 共6页
EL详解25189.doc_第3页
第3页 / 共6页
EL详解25189.doc_第4页
第4页 / 共6页
EL详解25189.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、EL 详解 25189EL 表达式总是用大括号括起,而且前面有一个美元符($)前缀:$expression。表示式中第一个命名变量要么式一个隐式对象,要么是某个作用域(页面作用域、请求作用域、会话作用域或应用作用域)中的一个属性。点 号操作符允许你使用一个 Map 键或一个 bean 性质名来访问值,例如,使用$foo.bar可以得到 bar 的值,在此,bar 是 Map foo的 Map 键名,或者是 bean foo 的一个性质。放在点号操作符右边的东西必须遵循 Java 的标识符命名规则!(换句话说,必须以一个字母、下划线或美元符开头,第一个字符后面可以有 数字,但不能有其他字符) 。

2、点号右边只能放合法的 Java 标识符。例如,$foo.1键就不可以。操作符比点号功能更强大,因为利用可以访问数组和 List,可以把包含命名变量的表达式放在中括号里,而且可以做任意层次的嵌套,只要你受得了。例如,如果 musicList 是一个 ArrayList,可以用$musicList0或$musicList“0”来访问列表的第一个值。EL 并不关心列表索引加不加引号。如果中括号里的内容没有用引号引起来,容器就会进行计算。如果确实放在引号里,而且不是一个数组或 List 的索引,容器就会把它看作是性质或键的直接命名。除 了一个 EL 隐式对象(PageContext)外,其他 EL 隐

3、式对象都是Map。从这些隐式对象可以得到任意 4 个作用域中的属性、请求参数值、首部值、 cookie 值和上下文初始化参数。非映射的隐式对象是 pageContext,它是 PageContext 对象的一个引用。不 要把隐式 EL 作用域对象(属性的 Map)与属性所绑定的对象混为一谈。换句话说,不要把 requestScope 隐式对象与具体的 JSP 隐式对象 request 混淆。访问请求对象只有一条路,这就是通过pageContext 隐式对象来访问(不过,想从请求得到的一些东西通过其他 EL 隐式对象也可 以得到,包括param/paramValues、header/header

4、Values 和 cookie) 。EL 允许你调用一个普通 Java 类中的公共静态方法。函数名不一定与具体的方法名相匹配!例如,$foo:roolIt()并不意味着包含函数的类中肯定有一个名为 roolIt()的方法。使 用一个 TLD 将函数名(例如 roolIt())映射到一个具体的静态方法。使用元素声明一个函数,包括函数 的(roolIt()、完全限定类以及,其中包括返回类型以及方法名和参数表。要在 JSP 中使用函数,必须使用 taglib 指令声明一个命名空间。在taglib 指令中放一个 prefix 属性,告诉容器你要的函数在哪个 TLD里能找到。例如:基本语法一、EL 简介

5、1.语法结构$expression2.与.运算符EL 提供.和两种运算符来存取数据。当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 。例如:$user.My-Name应当改为$user“My-Name“ 如果要动态取值时,就可以用来做,而.无法做到动态取值。例如:$sessionScope.userdata中 data 是一个变量3.变量EL 存取变量数据的方法很简单,例如:$username。它的意思是取出某一范围中名称为 username 的变量。因为我们并没有指定哪一个范围的 username,所以它会依序从Page、Request、Session、A

6、pplication 范围查找。假如途中找到 username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传 null。属性范围在 EL 中的名称Page PageScopeRequest RequestScopeSession SessionScopeApplication ApplicationScope二、EL 隐含对象1.与范围有关的隐含对象与范围有关的 EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和 applicationScope;它们基本上就和 JSP 的 pageContext、request、ses

7、sion 和application 一样;在 EL 中,这四个隐含对象只能用来取得范围属性值,即getAttribute(String name),却不能取得其他相关信息。例如:我们要取得 session 中储存一个属性 username 的值,可以利用下列方法:session.getAttribute(“username“) 取得 username 的值,在 EL 中则使用下列方法$sessionScope.username2.与输入有关的隐含对象与输入有关的隐含对象有两个:param 和 paramValues,它们是 EL中比较特别的隐含对象。例如我们要取得用户的请求参数时,可以利用下列

8、方法:request.getParameter(String name)request.getParameterValues(String name)在 EL 中则可以使用 param 和 paramValues 两者来取得数据。$param.name$paramValues.name3.其他隐含对象cookieJSTL 并没有提供设定 cookie 的动作,例:要取得 cookie 中有一个设定名称为 userCountry 的值,可以使用$cookie.userCountry来取得它。header 和 headerValuesheader 储存用户浏览器和服务端用来沟通的数据例:要取得用户

9、浏览器的版本,可以使用$header“User-Agent“。另外在鲜少机会下,有可能同一标头名称拥有不同的值,此时必须改为使用 headerValues 来取得这些值。initParaminitParam 取得设定 web 站点的环境参数(Context)例:一般的方法 String userid = (String)application.getInitParameter(“userid“);可以使用 $initParam.userid来取得名称为 useridpageContextpageContext 取得其他有关用户要求或页面的详细信息。$pageContext.request.qu

10、eryString 取得请求的参数字符串$pageContext.request.requestURL 取得请求的URL,但不包括请求之参数字符串$pageContext.request.contextPath 服务的 web application 的名称$pageContext.request.method 取得 HTTP 的方法(GET、POST)$pageContext.request.protocol 取得使用的协议(HTTP/1.1、HTTP/1.0)$pageContext.request.remoteUser 取得用户名称$pageContext.request.remoteA

11、ddr 取得用户的IP 地址$pageContext.session.new 判断 session 是否为新的$pageContext.session.id 取得 session 的ID$pageContext.servletContext.serverInfo 取得主机端的服务信息三、EL 运算符1.算术运算符有五个:+、-、*或$、/或 div、%或 mod2.关系运算符有六个:=或 eq、!=或 ne、或 gt、=或 ge3.逻辑运算符有三个:&或 and、|或 or、!或 not4.其它运算符有三个:Empty 运算符、条件运算符、()运算符例:$empty param.name、$A

12、?B:C、$A*(B+C)四、EL 函数(functions)。语法:ns:function( arg1, arg2, arg3 . argN)其中 ns 为前置名称(prefix),它必须和 taglib 指令的前置名称一置1 EL 表达式用$表示,可用在所有的 HTML 和 JSP 标签中 作用是代替 JSP 页面中复杂的 JAVA 代码.2 EL 表达式可操作常量 变量 和隐式对象. 最常用的 隐式对象有$param和$paramValues. $param表示返回请求参数中单个字符串的值. $paramValues表示返回请求参数的一组值.pageScope 表示页面范围的变量.req

13、uestScope 表示请求对象的变量. sessionScope 表示会话范围内的变量.applicationScope 表示应用范围的变量.3 表示是否禁用 EL 语言,TRUE 表示禁止.FALSE 表示不禁止.JSP2.0 中默认的启用 EL 语言.4 EL 语言可显示 逻辑表达式如$true and false结果是 false 关系表达式如$56 结果是 false 算术表达式如 $5+5 结果是 105 EL 中的变量搜索范围是:page request session application 点运算符(.)和“ “都是表示获取变量的值.区别是 可以显示非词类的变量$uplist0.lzid = zulist.zname?selected:

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报