EL表达式

一.EL表达式(Expression Language)

1.1概念

EL使JSP写起来跟简单、简洁。主要用于获取作用域中的数据。

1.2作用

用于替换作用域对象.getAttribute("name");

1.3EL的应用(获取基本类型、字符串)

  • ${scope.name} 获取具体某个作用域中的数据
  • ${name} 获取作用域中的数据,逐级查找(pageContext、request、session、application)

1.3.1EL应用案例

<%
	//存储在request作用域
	request.setAttribute("name","tom");
    request.setAttribute("age",18);
%>
${requestScope.name} <%--获取request作用域中name对应的值,找到就返回,没找到返回""  --%>
${name}<%--从最小作用域逐级查找name对应的值,找到就返回,没找到返回"" --%>

1.3.2EL和JSP脚本的区别

  • <%=request.getAttribute() %> 没有找到返回null
  • ${requestScope.name} 没找到返回""

1.4EL的应用(获取引用类型)

使用EL获取作用域中的对象调用属性时,只能访问对象的get方法,必须遵守命名规范定义

<%
    Emp e = new Emp();
    e.setName("gavin");
    e.setAge(19);
    request.setAttribute("e",e);
%>
${requestScope.e.name}<%-- 调用getName()方法 --%>

1.5EL的应用(获取数组、集合的元素)

EL可以获取Array、List、Map中的元素,Set由于没下标,无法直接访问元素,后续可遍历

<%
    int[] array = new int[]{1,2,3,4,5};
    request.setAttribute("array",array);

	List<Emp> emps = new ArrayList<>();
    emps.add(new Emp(1,"gavin",2000,19));
    emps.add(new Emp(2,"marry",3000,29));
    emps.add(new Emp(3,"jack",4000,39));
    request.setAttribute("emps",emps);

	Map<String,String> maps = new HashMap<>();
    maps.put("CN","中国");
    maps.put("FK","法国");
    maps.put("US","美国");
	request.setAttribute("maps",maps);
%>
${requestScope.array[0]}

${requestScope.emps[0]} <%-- 也可以用 ${requestScope.emps.get(0)}  --%>

${requestScope.maps.CN} <%-- 也可以用 ${requestScope.maps["US"]} -->

1.6隐式对象

EL 表达式语言定义了11个隐式对象

隐含对象 描述
pageScope page 作用域
requestScope request 作用域
sessionScope session 作用域
applicationScope application 作用域
param Request 对象的参数,字符串
paramValues Request对象的参数,字符串集合
header HTTP 信息头,字符串
headerValues HTTP 信息头,字符串集合
initParam 上下文初始化参数
cookie Cookie值
pageContext 当前页面的pageContext

1.6.1获得应用上下文

<%=request.getContextPath() %>
${pageContext.request.contextPath}

1.6.2获取Cookie对象

${cookie.username}//获取名为username的cookie对象
${cookie.password}//获取名为password的cookie对象
${cookie.password.value}//获取password的cookie的value值

 

上一篇:springboot_数据增删改查


下一篇:4.19Java数组存储表格数据