EL表達式獲取數據


EL 全名為Expression Language。

                                                                       EL主要作用

獲取數據:

•EL表達式主要用於替換JSP頁面中的腳本表達式,以從各種類型的web域 中檢索java對象、獲取數據。(某個web域 中的對象,訪問javabean的屬性、訪問list集合、訪問map集合、訪問數組)

執行運算:

•利用EL表達式可以在JSP頁面中執行一些基本的關系運算、邏輯運算和算術運算,以在JSP頁面中完成一些簡單的邏輯運算。${user==null}

獲取web開發常用對象

•EL 表達式定義了一些隱式對象,利用這些隱式對象,web開發人員可以很輕松獲得對web常用對象的引用,從而獲得這些對象中的數據。

調用Java方法

•EL表達式允許用戶開發自定義EL函數,以在JSP頁面中通過EL表達式調用Java類的方法。

                                                                    EL表達式獲取數據

 
1.使用EL表達式獲取數據語法:“${標識符}”
2.EL表達式語句在執行時,會調用pageContext.findAttribute方法,用標識符為關鍵字,分別從page、request、session、application四個域中查找相應的對象,找到則返回相應對象,找不到則返回”” (注意,不是null,而是空字符串)。EL表達式${xxx}會先看xxx是不是EL表達式的隱式對象,是就直接返回隱式對象的引用,不是就翻譯成pageContext.findAttribute(“xxx”)。
3.EL表達式也可以很輕松獲取JavaBean的屬性,或獲取數組、Collection、Map類型集合的數據,例如:
•${user.address.city}
•${user.list[0]}:訪問有序集合某個位置的元素
•${map.key}  : 獲得map集合中指定key的值
4.結合JSTL的foreach標簽,使用EL表達式也可以很輕松迭代各種類型的數組或集合,示例:
•迭代數組
•迭代collection類型集合
•迭代map類型集合
 1 <%@page import="com.yyz.Address"%>
 2 <%@page import="com.yyz.Person"%>
 3 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 4 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 5 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 6 <html>
 7   <head>
 8     <title>el表達式獲取數據示例</title> 
 9   </head>
10   <body>
11      <% 
12         request.setAttribute("name","aaa");
13     %>
14      ${name }  <%--pageContext.findAttribute("name") --%>
15     
16     <br/><hr><br/>
17      <!-- 在jsp頁面中,使用el表達式可以獲取bean的屬性 -->
18     <% 
19         Person p = new Person();
20         p.setAge(12);
21         request.setAttribute("person",p);
22     %>
23     ${person.age }
24 
25     <br/><hr><br/>
26     <!-- 在jsp頁面中,使用el表達式可以獲取bean中的bean(中的bean。。。)的屬性 -->
27     <% 
28         Person person = new Person();
29         Address address = new Address();
30         person.setAddress(address);
31         request.setAttribute("person",person);
32     %>
33    ${person.address.name }
34     
35     <br/><hr><br/>
36     <!-- 在jsp頁面中,使用el表達式獲取list集合中指定位置的數據 -->
37     <% 
38         Person p1 = new Person();
39         p1.setName("aa111");
40         Person p2 = new Person();
41         p2.setName("bb");
42         List list = new ArrayList();
43         list.add(p1);
44         list.add(p2);
45         request.setAttribute("list",list);
46     %>
47     ${list[1].name }  <!-- 取list指定位置的數據 -->
48      <!-- 迭代集合 -->
49     <c:forEach var="person" items="${list}">
50         ${person.name }
51     </c:forEach>
52     
53    <br/><hr><br/>
54    <!-- 在jsp頁面中,使用el表達式獲取map集合的數據 -->
55     <% 
56         Map map = new HashMap();
57         map.put("a","aaaaxxx");
58         map.put("b","bbbb");
59         map.put("c","cccc");
60         map.put("1","aaaa1111");
61         request.setAttribute("map",map);
62     %>
63     ${map.c }  <!-- 根據關鍵字取map集合的數據 -->
64       ${map["1"] }<!-- 如果Map的關鍵字是一個數字,則用點運算符搞不定,點運算符搞不定的用中括號運算符 -->
65     <c:forEach var="me" items="${map}">
66           ${me.key }=${me.value }<br/>
67       </c:forEach>
68     <br/><hr><br/>
69    </body>
70 </html>

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM