1.EL表达式
[1] 简介
> Expression Language,表达式语言
> 在JSP2.0以后,在jsp页面中不建议我们使用JSP表达式<%= %>和JSP脚本片段<% %>
> 使用EL表达式来代替JSP表达式,使用自定义标签来代替JSP脚本片段
> EL表达式可以将一个对象输出到页面中
[2] 基本语法
> ${表达式}
> EL表达式可以将一个域中的属性在页面中输出
> 全域查找:
- 语法:${属性名}
- EL表达式会自动在四个域中按照从小到大的顺序依次查找(page request session application),
先找到谁就返回谁,如果没找到它会直接返回空串。
> 查找指定域中的属性:
- 语法: ${xxxScope.属性名}
- EL中为我们提供了四个Scope
pageScope
requestScope
sessionScope
applicationScope
可以通过这四个scope,来指定要查找属性的域
- 当域中属性名,有特殊符号时,也可以采用如下方式获取属性
${xxxScope['属性名']}
> 对象的查询:
- 我们可以通过EL表达式直接读取一个JavaBean的属性
- 语法: ${对象.属性名} 比如: ${stu.name}
- 它并不是直接根据变量的名字去获取属性值,而是根据属性名,去调用对应get方法去获取属性值
比如stu.name,则它会调用stu.getName()
- 如果属性是一个Map,则可以通过${map.key}来获取
- 如果属性是一个List,则可以通过${list[索引]}来获取
[3] 隐含对象
> EL中一共有11个隐含对象
- pageContext
类型:PageContext
作用:和JSP中PageContext是一个,可以获取到JSP中的其他隐含对象
在EL表达式中并没有为我们提供JSP中的其他隐含对象,只有一个pageContext
如果需要使用其他隐含对象,我们可以直接通过pageContext
- pageScope
类型:Map<String,Object>
作用:代表的page域,通过它可以获取page域中属性
- requestScope
类型:Map<String,Object>
作用:代表的request域,通过它可以获取request域中属性
- sessionScope
类型:Map<String,Object>
作用:代表的session域,通过它可以获取session域中属性
- applicationScope
类型:Map<String,Object>
作用:代表的application域,通过它可以获取application域中属性
- param
类型:Map<String,String>
作用:代表请求参数的map,通过它可以获取指定的请求参数
- paramValues
类型: Map<String,String[]>
作用:代表一个请求参数对的多个值
- header
类型:Map<String,String>
作用:可以获取用户发送的请求头
- headerValues
类型: Map<String,String[]>
作用:获取一个头对应的多个值
- initParam
类型: Map<String,String>
作用:获取当前项目的全局初始化参数
- cookie
类型:Map<String,Cookie>
作用:获取用户发送的Cookie的信息
[4] 运算
> 在EL表达式中可以使用常见的运算符进行运算
> 在EL中还有一个比较特殊的运算符 empty
> empty运算符可以判断一个对象是否为空
- 当使用empty检查为null的对象时
返回true
- 当使用empty检查一个空串时
返回true
- 当使用empty去检查一个空集合时
返回true
> 语法:${empty 属性名}
转载请注明出处!
http://www.cnblogs.com/libingbin/
感谢您的阅读。如果文章对您有用,那么请轻轻点个赞,以资鼓励。