EL表达式
2015-09-01 15:28
218 查看
1、存取数据
EL提供”.”和”[]”两种运算符来存取数据。当要存取的属性名称中包含一些特殊字符,如.、?或全部是数字时,就一定要使用”[]”来存取数据,例如${user.myname}必须要改为${user[“myname”]}。
如果要动态取值时,就可以使用”[]”,而”.”无法做到动态取值。例如
{sessionScope.user[data]} 中data是一个变量。
2、变量
EL表达式中主要的隐式对象:l pageScope
l requestScope
l sessionScope
l applicationScope
EL表达式默认查找变量的顺序是按照以上顺序从隐式对象中取值,为了提高效率,我们可以直接指定搜索域.如
2.1、获取属性
后台 request.setAttribute("a","hello");前台 ${requestScope.a}
此外EL表达式可以级联获取对象属性的值
后台: request.setAttribute("user",user);
前台: ${user} 取得user对象
${user.userName} 取得user对象的userName属性的值
${user.group.name} 取得user对象所属组的组名
2.2、访问数组元素
后台:String[] str= newString[]{"a","b",”c“};request.setAttribute("str",str);
前台: ${str[1]} //通过下标来访问数组元素,下标从0开始
注意:使用EL表达式,只能获得数组、集合或Map中的某一元素,若要遍历集合中的元素,则需结合JSTL。
2.3、访问集合元素
后台: ArrayList list = new ArrayList();while(i < 10)
{
User user = new User();
user.setId(i);
user.setUserName("user"+i);
list.add(user);
}
request.setAttribute("user",list);
前台:
${user[3].userName} //通过下标来访问数组元素,下标从0开始
2.4、访问Map元素
后台:Map map = new HashMap();map.put("user","user");
request.setAttribute("map",map);
前台: ${map.user.name}
2.5、运算符
运算符类别 | 运算符 |
算术运算符 | + - * (/ div) (% mod) |
关系运算符 | (== eq) (!= ne) (< lt) (<= le) (>= ge) |
逻辑运算符 | &&(或and) or(或or) ! (或not) |
判空运算符 | empty,如${empty name} |
${100%66}
${3<5}
${ssl==’ssl’}
2.6、表达式判空
后台:request.setAttribute("value2","");request.setAttribute("value3",newArrayList());
request.setAttribute("value4","123456");
request.setAttribute("value5",null);
前台:
${empty value1}
${empty value2}
${empty value3}
${empty value4}
${empty value5}
结果
True
True
true
false
true
2.7、总结
EL存取变量数据的方法很简单,例如${username},意思是取出某一域内名称为username的变量。因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传””,即空的字符串,而不是NULL。
EL隐含对象
类别 | 隐含对象 | 描述 |
jsp页面 | pageContext | 代表此jsp页面的pageContext对象 |
作用范围 | pageScope | 用于读取page范围内的属性 |
requestScope | 用于读取request范围内的属性 | |
sessionScope | 用于读取session范围内的属性 | |
applicationnScope | 用于读取application范围内的属性 | |
请求参数 | param | 用于读取请求参数中的参数值,${param[“name”]} 等同于request.getParameter(“name”) |
paramValues | 用于获取请求参数中的参数值数组 | |
请求头 | header | 用于获取指定的请求头 如${header.host} |
headerValues | 用于获取指定请求头的值数组, 等同于request.getHeaders(String name) | |
Cookie | cookie | 用于获取请求中的cookie集 |
初始化参数 | initParam | 用于获取web应用程序上下文中的初始化参数,等同于 application.getInitParameter(String name) |
表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言。
相关文章推荐
- 线程调度
- MyBatis官方文档——XML 映射配置文件
- ArcMap中的名称冲突问题
- Ubuntu14.04安装wineqq国际版
- iphone 6消息汇总
- CSS 元素垂直居中的 6种方法
- 设置Mysql密码
- textview中特定位置几个字设置其效果以及定时器(多长时间后执行什么操作)和控件设圆角 圆边线
- javascript
- CSS3中的Transition属性详解
- ssh批量登录并执行命令(python实现)
- Android ArrayAdapter 源码查看 深入了解
- 苹果开发 笔记(68)MBProgressHUD
- Java输入输出流
- iOS开发日记13-原生二维码的扫描和生成
- 多个button的onclick()怎么处理
- 第一个只出现一次的字符
- Squid访问控制实例
- Squid访问控制实例
- oracle查看允许的最大连接数和当前连接数等信息