EL表达式

EL(Expression Language):目的是方便使用,产生无脚本的JAP页面。

语法:${exp}

转义:\${exp}

EL的隐含的内置对象

对象类型说明
pageContextjavax.servlet.ServletContext表示此Jsp的PageContext
pageScopejava.util.Map取得page范围内的属性名和对应的属性值
requestScopejava.util.Map取得request范围内的属性名和对应的属性值
sessionScopejava.util.Map取得session范围内的属性名和对应的属性值
applicationScopejava.util.Map取得application范围内的属性名和对应的属性值
paramjava.util.Map如同ServletRequest.getParameter(String name),回传String类型的值
paramValuesjava.util.Map如同ServletRequest.getParameterValues(String name),回传String[]类型的值
headerjava.util.Map如同ServletRequest.getHeader(String name),回传String类型的值
headerValuesjava.util.Map如同ServletRequest.getHeaders(String name),回传String[]类型的值
cookiejava.util.Map如同HttpServletRequest.getCookies()
initParamjava.util.Map如同ServletContext.getInitParameter(String name),回传String类型的值

               与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和applicationScope,它们基本上就和JSP的pageContext、request、session和application一样,不过必须注意的是,这四个隐含对象只能用来取得范围属性值,即JSP中的getAttribute(String name),却不能取得其他相关信息,例如:JSP中的request对象除可以存取属性之外,还可以取得用户的请求参数或表头信息等等。但是在EL中,它就只能单纯用来取得对应范围的属性值,例如:我们要在session 中储存一个属性,它的名称为username,在JSP 中使用session.getAttribute(“username”) 来取得username 的值, 但是在EL 中, 则是使用${sessionScope.username}来取得其值的

EL的五个操作运算符

加法:+
减法:-
乘法:×
除法:/或div
余数:%或mod

EL的六个比较运算符

等于:==或eq
不等于:!=或ne
小于:<或lt
大于:>或gt
小于等于:<=或le
大于等于:>=或ge

EL的三个逻辑运算符

与:&&或and
或:||或or
非:!或not

在JSP页面的Bean可以通过EL表达式来访问。

EL表达式的使用可以通过.或者[ ]来访问属性,两者可以 混用。

<%
	User user = new User();
	request.setAttribute("User", user);
%>
	${ requestScope["user"]["name"] }<br/>    	<!--使用[ ]-->
等同于:	${ requestScope.user.name }<br/>   		<!--使用.-->
等同于:	${ requestScope.user["name"] }     		<!--[ ]和.混合使用-->

.和[ ]的使用差异

1) 当要存取的属性名称中包含一些特殊字符,如 . 或 – 等并非字母或数字的符号,就一定要使用 [ ],例如:${ requestScope.user.My-Name }是不正确的方式,应当改为:${ requestScope.user["My-Name"] }
2) ${sessionScope.user[data]}。此时,data 是一个变量,假若data的值为"sex"时,那上述的例子等于${sessionScope.user.sex};假若data 的值为"name"时,它就等于${sessionScope.user.name}。因此,如果要动态取值时,就可以用上述的方法来做,但 . 无法做到动态取值
EL的寻找顺序

EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所以它的默认值会先从Page 范围找,假如找不到,再依序到Request、Session、Application范围。假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null

EL的自动转变类型

EL 除了提供方便存取变量的语法之外,它另外一个方便的功能就是:自动转变类型,如:${param.count + 20},会将传来的count自动转化为数值





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值