目录
1.3 EL 表达式输出 Bean 的普通属性,数组属性。List 集 合属性,map 集合属性
1.EL 表达式
1.1 什么是 EL 表达式,EL 表达式的作用?
EL 表达式的全称是: Expression Language。是表达式语言。EL 表达式的什么作用: EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。
1.2 EL 表达式搜索域数据的顺序
- EL 表达式主要是在 jsp 页面中输出数据。
- 主要是输出域对象中的数据。
- 当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
//往四个域中都保存了相同的key的数据。
request.setAttribute("key", "request");
session.setAttribute("key", "session");
application.setAttribute("key", "application");
pageContext.setAttribute("key", "pageContext");
%>
${ key }
</body>
</html>
1.3 EL 表达式输出 Bean 的普通属性,数组属性。List 集 合属性,map 集合属性
需求——输出 Person 类中普通属性,数组属性。list 集合属性和 map 集合属性。
Peson类:
package com.atguigu.pojo;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
public class Person {
// i.需求——输出Person类中普通属性,数组属性。list集合属性和map集合属性。
private String name;
private String[] phones;
private List<String> cities;
private Map<String,Object> map;
public int getAge() {
return 18;
}
}
页面输出的代码:
<%@ page import="com.atguigu.pojo.Person" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
Person person = new Person();
person.setName("国哥好帅!");
person.setPhones(new String[]{"18610541354","18688886666","18699998888"});
List<String> cities = new ArrayList<String>();
cities.add("北京");
cities.add("上海");
cities.add("深圳");
person.setCities(cities);
Map<String,Object>map = new HashMap<>();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
person.setMap(map);
pageContext.setAttribute("p", person);
%>
输出Person:${ p }<br/>
输出Person的name属性:${p.name} <br>
输出Person的pnones数组属性值:${p.phones[2]} <br>
输出Person的cities集合中的元素值:${p.cities} <br>
输出Person的List集合中个别元素值:${p.cities[2]} <br>
输出Person的Map集合: ${p.map} <br>
输出Person的Map集合中某个key的值: ${p.map.key3} <br>
输出Person的age属性:${p.age} <br>
</body>
</html>
注意:EL表达式找值找的是其对应的get方法,而不是其变量本身。
1.4 EL 表达式——运算
语法:${ 运算表达式 } , EL 表达式支持如下运算符
- 关系运算
- 逻辑运算
- 算数运算
- empty 运算
empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。
以下几种情况为空:1、值为 null 值的时候,为空2、值为空串的时候,为空3、值是 Object 类型数组,长度为零的时候4、 list 集合,元素个数为零5、 map 集合,元素个数为零
<%@ page import="java.util.List" %