阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

EL表达式

156次阅读
没有评论

共计 2278 个字符,预计需要花费 6 分钟才能阅读完成。

1、EL 概述

1.1、EL 的作用

JSP2.0 要把 html 和 css 分离、要把 html 和 javascript 分离、要把 Java 脚本替换成标签。标签的好处是非 Java 人员都可以使用。

JSP2.0 – 纯标签页面,即:不包含 <% … %>、<%! … %>,以及 <%= … %>

EL(Expression Language)是一门表达式语言,它对应 <%=…%>。我们知道在 JSP 中,表达式会被输出,所以 EL 表达式也会被输出。

1.2、EL 的格式

格式:${…}

例如:${1 + 2}

1.3、关闭 EL

如果希望整个 JSP 忽略 EL 表达式,需要在 page 指令中指定 isELIgnored=”true”。

如果希望忽略某个 EL 表达式,可以在 EL 表达式之前添加“\”,例如:${1 + 2}。

1.4、EL 运算符

EL 表达式

1.5、EL 不显示 null

当 EL 表达式的值为 null 时,会在页面上显示空白,即什么都不显示。

2、EL 表达式格式

先来了解一下 EL 表达式的格式!现在还不能演示它,因为需要学习了 EL11 个内置对象后才方便显示它。

l 操作 List 和数组:{list[0]}、{arr[0]};

l 操作 bean 的属性:{person.name}、{person[‘name’]},对应 person.getName()方法;

l 操作 Map 的值:{map.key}、{map[‘key’]},对应 map.get(key)。

3、EL 内置对象

EL 一共 11 个内置对象,无需创建即可以使用。这 11 个内置对象中有 10 个是 Map 类型的,最后一个是 pageContext 对象。

l pageScope

l requestScope

l sessionScope

l applicationScope

l param;

l paramValues;

l header;

l headerValues;

l initParam;

l cookie;

l pageContext;

3.1、域相关内置对象(重点)

域内置对象一共有四个:

l pageScope:${pageScope.name}等同与 pageContext.getAttribute(“name”);

l requestScope:${requestScope.name}等同与 request.getAttribute(“name”);

l sessionScoep:${sessionScope.name}等同与 session.getAttribute(“name”);

l applicationScope:${applicationScope.name}等同与 application.getAttribute(“name”);

如果在域中保存的是 JavaBean 对象,那么可以使用 EL 来访问 JavaBean 属性。因为 EL 只做读取操作,所以 JavaBean 一定要提供 get 方法,而 set 方法没有要求。

Person.java

public class Person {private String name; private int age; private String sex; public String getName() {return name; } public void setName(String name) {this.name = name; } public int getAge() {return age; } public void setAge(int age) {this.age = age; } public String getSex() {return sex; } public void setSex(String sex) {this.sex = sex; } }

EL 表达式

全域查找:${person}表示依次在 pageScope、requesScopet、sessionScope、appliationScope 四个域中查找名字为 person 的属性。

3.2、请求参数相关内置对象

param 和 paramValues 这两个内置对象是用来获取请求参数的。

param:Map<String,String> 类型,param 对象可以用来获取参数,与 request.getParameter()方法相同。

EL 表达式

注意,在使用 EL 获取参数时,如果参数不存在,返回的是空字符串,而不是 null。这一点与使用 request.getParameter()方法是不同的。

EL 表达式

paramValues:paramValues 是 Map<String, String[]> 类型,当一个参数名,对应多个参数值时可以使用它。

EL 表达式

3.3、请求头相关内置对象

header 和 headerValues 是与请求头相关的内置对象:

​ header:Map<String,String> 类型,用来获取请求头。

EL 表达式

​ headerValues:headerValues 是 Map<String,String[]> 类型。当一个请求头名称,对应多个值时,使用该对象,这里就不在赘述。

3.4、应用初始化参数相关内置对象

initParam:initParam 是 Map<String,String> 类型。它对应 web.xml 文件中的 参数。

EL 表达式

3.5、Cookie 相关内置对象

cookie:cookie 是 Map<String,Cookie> 类型,其中 key 是 Cookie 的名字,而值是 Cookie 对象本身。

EL 表达式

3.6、pageContext 对象

pageContext:pageContext 是 PageContext 类型!可以使用 pageContext 对象调用 getXXX()方法,例如 pageContext.getRequest(),可以 ${pageContext.request}。也就是读取 JavaBean 属性!!!

EL 表达式

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-06-06发表,共计2278字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中