EL表达式

a)什么是 EL 表达式,EL 表达式的作用?
  EL 表达式的全称是:Expression Language。是表达式语言。
  EL 表达式的什么作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。
  因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。

  

<body>
<%
  request.setAttribute("key","值");
%>
  表达式脚本输出 key 的值是:%=request.getAttribute("key1")==null?"":request.getAttribute("key1")%><br/>
  EL 表达式输出 key 的值是:${key1}
</body>

 

EL表达式的格式是 ${}

EL 表达式在输出 null 值的时候,输出的是空串。jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串。

b)EL 表达式搜索域数据的顺序
  EL 表达式主要是在 jsp 页面中输出数据。
  主要是输出域对象中的数据。
  当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出。

  

<body>
<%
// 往四个域中都保存了相同的 key 的数据。
request.setAttribute("key", "request");
session.setAttribute("key", "session"); application.setAttribute("key", "application"); pageContext.setAttribute("key", "pageContext"); %> ${ key }

c) EL表达式输出自定义类

  

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;
  } }

 

这样输出

<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>

 

posted @ 2020-04-11 11:21  超级学渣渣  阅读(255)  评论(0编辑  收藏  举报