EL 表达式的用法(一)--获取数据

时间:2021-03-05 19:00:02

EL 表达式的用法(一)--获取数据


EL 表达式的用法(一)--获取数据

<%@ page language="java" import="java.util.*, cn.hncu.domain.User" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>EL表达式</title>
  </head>
  
  <body>
    <h1>EL表达式作用1: 获取数据</h1>
    <h2>EL表达式读取简单的属性值</h2>
    <h3>EL读取容器中的属性值,注意:只有放在容器的数据才能读取出来,且标识符是属性名(并非对象名)</h3>
    <%
       pageContext.setAttribute("name", "pageJack");
       //pageContext.setAttribute("name", "requestJack", PageContext.REQUEST_SCOPE);
       //session.setAttribute("name", "sessionJack");
       //application.setAttribute("name", "appJack");
    %>
    ${name}<!-- 此处 name 是属性名 -->
    <!-- EL表达式内部调用  pageContext.findAttribute("name")
                     输出时等价于:  pageContext.findAttribute("name")?null:"",pageContext.findAttribute("name") -->
    <br/>
    
    ${aaa} <!-- 由于4个容器中都不存在该aaa属性,因此输出空串 -->
    <br/>
    
    <%
    User user = new User();
        user.setName("Tom");
        user.setAge(22);
        user.setPwd("1234");
        pageContext.setAttribute("u", user); //只有放在容器中,才能用EL表达式读取出来。
    %>
${u} <br/>  <!-- 如果该属性的值是一个对象,则自动会调用toString() -->

${u.name},${u.age},${u.pwd} <br/> <!--内部是根据属性名推出对应getter方法进行调用 -->


EL 表达式的用法(一)--获取数据


<h4>EL表达式读取复杂的属性值--map,list,map和list的结合</h4>
<%
  Map<String,Object> map = new HashMap<String,Object>();
  map.put("nm", "城院");
  map.put("age","15");
  map.put("user",user);
  request.setAttribute("m", map);
%>
${m}<br/> <!-- 输出整个map中的内容:{age=15, user=User [name=Tom, age=22, pwd=1234], nm=城院}  -->

<!-- 读取map中属性的两种方式,注意方式2中的引号不能省  -->
${m.nm}, ${m['nm']}  <br/> 
${m.user.name}, ${m['user'].name}, ${m.user['name']}
<br/>

<%
  List<Object> list = new ArrayList<Object>();
  list.add("aaa");
  list.add("张三");
  list.add("城院");
  list.add(user);
  session.setAttribute("list", list);
%>
${list} <br/>  <!-- 输出整个list中的内容: [aaa, 张三, 城院, User [name=Tom, age=22, pwd=1234]]  -->

<%-- 读取list中属性的方式: ${标识名[序号]}  --%>
${list[1]}<br/>


<%
  map.put("mlist", list);
  request.setAttribute("m", map);
%>
${m.mlist[3].name} <br/>



  </body>
</html>