el表达式
-
简介:用于从jsp的域对象中获取数据。jsp的域对象包括page, request, session, application。
-
目的:为了减少jsp页面中Java代码,使得jsp页面变得更优雅
-
获取属性数据的语法:
-
完整的写法:
${域范围.属性名}
- 域范围包括:
-
pageScope: page对象的属性域
-
requestScope:request对象的属性域
-
sessionScope:session对象的属性域
-
applicationScope:application对象的属性域
-
- 域范围包括:
-
简写:
${属性名}
- 优先级:优先从page对象获取属性,再request对象,再session对象,最后application对象,没有则返回null
注:除了属性数据以外,也可以获得其他数据,比如参数数据
-
-
获取简单的数据
-
获取方式:
${属性名}
-
例子:
<% //为request对象设置两个属性 request.setAttribute("name", "zero"); request.setAttribute("age", 18); %> <!-- 使用el表达式获取request的属性 --> 昵称:${name} <br/> 年龄:${age}
-
-
获取类对象的字段数据
-
获取方式:
${属性名.类字段}
-
该类字段必须实现了get()方法,el表达式会通过该字段名去调用相应的get()方法
-
这里的属性名指的是域对象添加的属性
-
-
例子:
<% //为request对象设置一个User对象 User user = new User("tom", 20, "男"); request.setAttribute("user", user); %> <!-- 使用el表达式获取request的属性 --> 姓名:${user.name} <br/> 年龄:${user.age} <br/> 性别:${user.gender}
-
-
获取map集合数据
-
获取方式:
${属性名.键名称}
-
例子:
<% //为request对象设置一个Map对象 Map<String, String> map = new HashMap<String, String>(); map.put("name", "zero"); map.put("address", "山间小林"); request.setAttribute("map", map); %> <!-- 使用el表达式获取request的属性 --> 姓名:${map.name} <br/> 住址:${map.address}
-
-
获取list集合数据
-
获取方式:
${属性名[index]}
- index是List中的索引,索引从0开始
-
例子:
<% //为request对象设置一个List对象 List<String> list = new ArrayList<String>(); list.add("广州"); list.add("深圳"); request.setAttribute("list", list); %> <!-- 使用el表达式获取request的属性 --> 地点1:${list[0]} <br/> 地点2:${list[1]}
-
-
其他用法:
-
运算表达式:
${90 + 90} //运算,输出180
-
判断表达式:
${7 > 5} //比较判断,输出true
-
判断能否获取到数据
${empty 属性名} //判断能否获得属性,能则返回true
-
内置对象pageContext的使用:
在el表达式中是无法获得其他内置对象的,但可以获得pageContext对象,通过pageContext对象可以获得其他对象,进而调用对象的属性
获取项目目录:
${pageContext.request.contextPath}
-