博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EL表达式总结
阅读量:5339 次
发布时间:2019-06-15

本文共 1733 字,大约阅读时间需要 5 分钟。

在MVC体系结构中,JSP页面只是用来显示数据,但JSP脚本中的表达式功能不够强大,它不能直接对隐式对象中某对象的属性进行显示,需要配合Scriptlet才能显示数据,很是麻烦,如果在JSP页面中使用EL表达式将大大简化JSP页面中的Java代码,在配合JSP标准动作,JSTL,可达到真正的JSP无脚本。
 
EL(Expression Language)表达式语言,语法:${表达式},例如:${
"Beijing 2008"
}则在JSP页面输出Beijing 2008,相当于JSP脚本中的<%=
"Beijing 2008"
%>,在EL表达式中的“'”和“"”功能是一样的,表示一个字符串;
 
在JSP页面中我们可以禁用EL表达式,需要配置page指令的isELIgnored属性,属性值若为
true
则支持EL表达式,若为
false
则禁用表达式,默认情况下是支持EL表达式的。
 
在EL表达式中我们可以使用运算符以达到我们想要的结果,运算符按作用分为以下几种:
 
1.算术运算符
 
+ 注意:在EL表达式中的‘+’只有数学运算的功能,没有连接符的功能,它会试着把运算符两边的操作数转换为数值类型,进而进行数学加法运算,最后把结果输出。若出现${
'a'
+
'b'
}则会出现异常。 例如:${6+6}
- 例如:${4-3}
* 例如:${4*3}
/ 例如:${9/3}
2.关系运算符
 
> 例如:${8>9}
>= 例如:${45>=9}
< 例如:${4<9}
<= 例如:${9<=8}
== 例如:${4==4}
!= 例如:${4!=3}
3.逻辑运算符
 
&& 例如:${
false 
&&
false
}
|| 例如:${
true 
||
false
}
! 例如:${!
true
}相当于${
false
}
4.三元运算符
 
? : 例如:${3>2?
'是'
:
'不是'
}
在EL表达式中还有一些特殊运算符:
 
empty 判断EL表达式中的表达式是否为空,例如:${empty sessionScope.user}
. 是我们最常用的,作用相当于执行Bean中的
get
方法。 例如:${sessionScope.user.userName}意思是:在会话中得到名称为user的Bean对象,通过“.”运算符执行getUserName();方法,返回存放在Bean中的用户名属性的值。
[] 作用和“.”运算符的一样,只不过[]运算符可以执行一些不规则的标识符。 例如:${requestScope.user[
"score-math"
]},这个表达式中有不规则的标识符,是不能使用“.”来访问的。
在EL表达式中为我们提供了许多内置对象,使我们很方便的得到我们想要的数据:
 
1.从隐式对象中得到数据:
 
pageScope 例如:${pageScope.user.userName} 相当于<%=page.getAttribute(
"user"
).getUserName%>
requestScope 例如:${requestScope.books} 相当于<%=request.getAttribute(
"books"
)%>
sessionScope 例如:${sessionScope.lastURL} 相当于<%=session.getAttribute(
"lastURL"
)%>
applicationScope 例如:${applicationScope.provice} 相当于<%=application.getAttribute(
"provice"
)%>
2.从请求头中得到数据:
 
header 例如:${header.referer}得到请求过来的URL
3.访问JSP页面中的内置对象:
 
pageContext 例如:${pageContext.request}在EL表达式中我们是不能直接使用JSP页面的内置对象,但可以是用pageContext间接得到这些内置对象,再来使用。

  

转载于:https://www.cnblogs.com/afengboke/p/4618204.html

你可能感兴趣的文章
建造者模式
查看>>
ArraySort--冒泡排序、选择排序、插入排序工具类demo
查看>>
composer 安装laravel
查看>>
8-EasyNetQ之Send & Receive
查看>>
Android反编译教程
查看>>
java重写LinkedList
查看>>
zTree节点重叠或者遮挡
查看>>
List<string> 去重复 并且出现次数最多的排前面
查看>>
js日志管理-log4javascript学习小结
查看>>
Android之布局androidmanifest.xml 资源清单 概述
查看>>
How to Find Research Problems
查看>>
Linux用户管理
查看>>
数据库第1,2,3范式学习
查看>>
《Linux内核设计与实现》第四章学习笔记
查看>>
使用iperf测试网络性能
查看>>
struts2入门之准备工作
查看>>
从C语言的弱类型属性说起
查看>>
大牛博客
查看>>
图片的显示隐藏(两张图片,默认的时候显示第一张,点击的时候显示另一张)...
查看>>
Docker 安装MySQL5.7(三)
查看>>