本文共 2172 字,大约阅读时间需要 7 分钟。
EL 表达式的全称是:Expression Language。是表达式语言。
EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。 因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多
<% request.setAttribute("key","value");%>jsp表达式脚本输出key的值:<%=request.getAttribute("key1")== null ? "" : request.getAttribute("key1")%>EL表达式输出key的值:${key1}
说明:EL 表达式的格式是:${表达式}
EL 表达式在输出 null 值的时候,输出的是空串。jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串
EL 表达式主要是在 jsp 页面中输出数据。 主要是输出域对象中的数据。
当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大(pageContext->request->session->application)的顺序去进行搜索,找到就输出<% //往四个域中都保存了相同的key的数据。 pageContext.setAttribute("key","pageContext"); request.setAttribute("key","request"); session.setAttribute("key","session"); application.setAttribute("key","application"); %> ${key}
需求——输出 Person 类中普通属性,数组属性。list 集合属性和 map 集合属性。
Person 类:
// i. 需求——输出 Person 类中普通属性,数组属性。list 集合属性和 map 集合属性 private String name; private String[] hobby; private Listcities; private Map map;
输出的代码:
<%@ page import="loey.pojo.Person" %><%@ page import="java.util.*" %><%-- Created by IntelliJ IDEA. User: It.me Date: 2020/10/3 Time: 13:39 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %>Title <% Person person = new Person(); person.setName("朴灿烈"); person.setHobby(new String[]{"跳舞","唱歌"}); Listlist = new ArrayList<>(); list.add("北京"); list.add("上海"); list.add("南京"); person.setCities(list); Map map = new HashMap<>(); map.put("key1","value1"); map.put("key2","value2"); map.put("key3","value3"); person.setMap(map); pageContext.setAttribute("p",person); %> 输出Person:${p} 输出Person的name属性:${p.name} <%--实际上调用的是Perosn类的getName()方法--%> 输出Person的hobby数组属性值:${p.hobby[0]} 输出Person的cities集合中的元素值:${p.cities} 输出Person的List集合中个别元素值:${p.cities[0]} 输出Person的Map集合:${p.map} 输出Person的Map集合中某个key的值:${p.map.key1}
结果:
转载地址:http://lluki.baihongyu.com/