EL表达式总结
2016-02-18 16:40
85 查看
在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′则会出现异常。例如:{'a'+'b'}则会出现异常。 例如:{6+6}
例如:${4-3}
例如:4∗3/例如:{4*3}
/ 例如:{9/3}
2.关系运算符
例如:8>9=例如:{8>9}
= 例如:{45>=9}
< 例如:4<9<=例如:{4<9}
<= 例如:{9<=8}
== 例如:4==4!=例如:{4==4}
!= 例如:{4!=3}
3.逻辑运算符
&& 例如:{false && false}
|| 例如:{false && false}
|| 例如:{true || false}
! 例如:!true相当于{!true}相当于{false}
4.三元运算符
? : 例如:${3>2?’是’:’不是’}
在EL表达式中还有一些特殊运算符:
empty 判断EL表达式中的表达式是否为空,例如:emptysessionScope.user.是我们最常用的,作用相当于执行Bean中的get方法。例如:{empty sessionScope.user}
. 是我们最常用的,作用相当于执行Bean中的get方法。 例如:{sessionScope.user.userName}意思是:在会话中得到名称为user的Bean对象,通过“.”运算符执行getUserName();方法,返回存放在Bean中的用户名属性的值。
[] 作用和“.”运算符的一样,只不过[]运算符可以执行一些不规则的标识符。 例如:${requestScope.user[“score-math”]},这个表达式中有不规则的标识符,是不能使用“.”来访问的。
在EL表达式中为我们提供了许多内置对象,使我们很方便的得到我们想要的数据:
1.从隐式对象中得到数据:
pageScope 例如:pageScope.user.userName相当于<requestScope例如:{pageScope.user.userName} 相当于<%=page.getAttribute(“user”).getUserName%>
requestScope 例如:{requestScope.books} 相当于<%=request.getAttribute(“books”)%>
sessionScope 例如:sessionScope.lastURL相当于<applicationScope例如:{sessionScope.lastURL} 相当于<%=session.getAttribute(“lastURL”)%>
applicationScope 例如:{applicationScope.provice} 相当于<%=application.getAttribute(“provice”)%>
2.从请求头中得到数据:
header 例如:${header.referer}得到请求过来的URL
3.访问JSP页面中的内置对象:
pageContext 例如:${pageContext.request}在EL表达式中我们是不能直接使用JSP页面的内置对象,但可以是用pageContext间接得到这些内置对象,再来使用。
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′则会出现异常。例如:{'a'+'b'}则会出现异常。 例如:{6+6}
例如:${4-3}
例如:4∗3/例如:{4*3}
/ 例如:{9/3}
2.关系运算符
例如:8>9=例如:{8>9}
= 例如:{45>=9}
< 例如:4<9<=例如:{4<9}
<= 例如:{9<=8}
== 例如:4==4!=例如:{4==4}
!= 例如:{4!=3}
3.逻辑运算符
&& 例如:{false && false}
|| 例如:{false && false}
|| 例如:{true || false}
! 例如:!true相当于{!true}相当于{false}
4.三元运算符
? : 例如:${3>2?’是’:’不是’}
在EL表达式中还有一些特殊运算符:
empty 判断EL表达式中的表达式是否为空,例如:emptysessionScope.user.是我们最常用的,作用相当于执行Bean中的get方法。例如:{empty sessionScope.user}
. 是我们最常用的,作用相当于执行Bean中的get方法。 例如:{sessionScope.user.userName}意思是:在会话中得到名称为user的Bean对象,通过“.”运算符执行getUserName();方法,返回存放在Bean中的用户名属性的值。
[] 作用和“.”运算符的一样,只不过[]运算符可以执行一些不规则的标识符。 例如:${requestScope.user[“score-math”]},这个表达式中有不规则的标识符,是不能使用“.”来访问的。
在EL表达式中为我们提供了许多内置对象,使我们很方便的得到我们想要的数据:
1.从隐式对象中得到数据:
pageScope 例如:pageScope.user.userName相当于<requestScope例如:{pageScope.user.userName} 相当于<%=page.getAttribute(“user”).getUserName%>
requestScope 例如:{requestScope.books} 相当于<%=request.getAttribute(“books”)%>
sessionScope 例如:sessionScope.lastURL相当于<applicationScope例如:{sessionScope.lastURL} 相当于<%=session.getAttribute(“lastURL”)%>
applicationScope 例如:{applicationScope.provice} 相当于<%=application.getAttribute(“provice”)%>
2.从请求头中得到数据:
header 例如:${header.referer}得到请求过来的URL
3.访问JSP页面中的内置对象:
pageContext 例如:${pageContext.request}在EL表达式中我们是不能直接使用JSP页面的内置对象,但可以是用pageContext间接得到这些内置对象,再来使用。
相关文章推荐
- 博客新地址 http://blog.devtao.com
- AndroidStudio使用笔记
- git常用
- 自定义TabBar
- log file sync 事件(转)
- 【ZOJ 3480】Duck Typing
- 关于ListBox一次性删除多个选项
- python脚本11——.strings文件与excel互转、 xml文件与excel互转
- React.js基础
- 杂项
- 性能调优攻略
- ImageLoader加载图片
- 使用宏包cleveref实现自动的引用
- maven构建时报test错误
- OC 和 Swift 混编 OC 中调用 Swift
- iOS字体相关知识
- 云客网:企业网站SEO优化方案实例
- android中activity的四种启动模式
- Android 中解决ScrollView嵌套ListView或者GridView时的冲突问题
- 关于android apk系统签名