1. 程式人生 > >EL表示式的大全(簡單易懂)

EL表示式的大全(簡單易懂)

一、EL表示式簡介

  EL 全名為Expression Language。EL主要作用:
  1、獲取資料
    EL表示式主要用於替換JSP頁面中的指令碼表示式,以從各種型別的web域 中檢索java物件、獲取資料。(某個web域 中的物件,訪問javabean的屬性、訪問list集合、訪問map集合、訪問陣列)
  2、執行運算
    利用EL表示式可以在JSP頁面中執行一些基本的關係運算、邏輯運算和算術運算,以在JSP頁面中完成一些簡單的邏輯運算。${user==null}
  3、獲取web開發常用物件
    EL 表示式定義了一些隱式物件,利用這些隱式物件,web開發人員可以很輕鬆獲得對web常用物件的引用,從而獲得這些物件中的資料。
  4、呼叫Java方法


    EL表示式允許使用者開發自定義EL函式,以在JSP頁面中通過EL表示式呼叫Java類的方法。

1.1、獲取資料

  使用EL表示式獲取資料語法:"${識別符號}"
  EL表示式語句在執行時,會呼叫pageContext.findAttribute方法,用識別符號為關鍵字,分別從page、request、session、application四個域中查詢相應的物件,找到則返回相應物件,找不到則返回”” (注意,不是null,而是空字串)。

  EL表示式可以很輕鬆獲取JavaBean的屬性,或獲取陣列、Collection、Map型別集合的資料

  el表示式獲取資料範例:

複製程式碼
 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 3 <%@page import="me.gacl.domain.Person"%>
 4 <%@page import="me.gacl.domain.Address"%>
 5 <!DOCTYPE HTML>
 6 <html>
 7   <
head> 8 <title>el表示式獲取資料</title> 9 </head> 10 11 <body> 12 <% 13 request.setAttribute("name","孤傲蒼狼"); 14 %> 15 <%--${name}等同於pageContext.findAttribute("name") --%> 16 使用EL表示式獲取資料:${name} 17 <hr> 18 <!-- 在jsp頁面中,使用el表示式可以獲取bean的屬性 --> 19 <% 20 Person p = new Person(); 21 p.setAge(12); 22 request.setAttribute("person",p); 23 %> 24 使用el表示式可以獲取bean的屬性:${person.age} 25 <hr> 26 <!-- 在jsp頁面中,使用el表示式可以獲取bean中的。。。。。。。。。的屬性 --> 27 <% 28 Person person = new Person(); 29 Address address = new Address(); 30 person.setAddress(address); 31 32 request.setAttribute("person",person); 33 %> 34 ${person.address.name} 35 <hr> 36 <!-- 在jsp頁面中,使用el表示式獲取list集合中指定位置的資料 --> 37 <% 38 Person p1 = new Person(); 39 p1.setName("孤傲蒼狼"); 40 41 Person p2 = new Person(); 42 p2.setName("白虎神皇"); 43 44 List<Person> list = new ArrayList<Person>(); 45 list.add(p1); 46 list.add(p2); 47 48 request.setAttribute("list",list); 49 %> 50 51 <!-- 取list指定位置的資料 --> 52 ${list[1].name} 53 54 <!-- 迭代List集合 --> 55 <c:forEach var="person" items="${list}"> 56 ${person.name} 57 </c:forEach> 58 <hr> 59 <!-- 在jsp頁面中,使用el表示式獲取map集合的資料 --> 60 <% 61 Map<String,String> map = new LinkedHashMap<String,String>(); 62 map.put("a","aaaaxxx"); 63 map.put("b","bbbb"); 64 map.put("c","cccc"); 65 map.put("1","aaaa1111"); 66 request.setAttribute("map",map); 67 %> 68 69 <!-- 根據關鍵字取map集合的資料 --> 70 ${map.c} 71 ${map["1"]} 72 <hr> 73 <!-- 迭代Map集合 --> 74 <c:forEach var="me" items="${map}"> 75 ${me.key}=${me.value}<br/> 76 </c:forEach> 77 <hr> 78 </body> 79 </html>
複製程式碼

  執行效果如下:

  

1.2、執行運算

  語法:${運算表示式},EL表示式支援如下運算子:

  1、關係運算符

  

  2、邏輯運算子:

  

  3、empty運算子:檢查物件是否為null(空)

  4、二元表示式:${user!=null?user.name :""}
  5、[ ] 和 . 號運算子

  使用EL表示式執行運算範例:

複製程式碼
 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 3 <%@page import="me.gacl.domain.User"%>
 4 <!DOCTYPE HTML>
 5 <html>
 6   <head>
 7     <title>el表示式運算子</title>
 8   </head>
 9   
10   <body>
11   <h3>el表示式進行四則運算:</h3>
12         加法運算:${365+24}<br/>
13         減法運算:${365-24}<br/>
14         乘法運算:${365*24}<br/>
15         除法運算:${365/24}<br/>
16         
17     <h3>el表示式進行關係運算:</h3>
18     <%--${user == null}和 ${user eq null}兩種寫法等價--%>
19         ${user == null}<br/>
20         ${user eq null}<br/>
21         
22         <h3>el表示式使用empty運算子檢查物件是否為null(空)</h3>
23     <% 
24         
25         List<String> list = new ArrayList<String>();
26         list.add("gacl");
27         list.add("xdp");
28         request.setAttribute("list",list);
29     %>
30     <%--使用empty運算子檢查物件是否為null(空) --%>
31     <c:if test="${!empty(list)}">
32         <c:forEach var="str" items="${list}">
33             ${str}<br/>
34         </c:forEach>
35     </c:if>
36     <br/>
37     <%
38         List<String> emptyList = null;
39     %>
40     <%--使用empty運算子檢查物件是否為null(空) --%>
41     <c:if test="${empty(emptyList)}">
42         對不起,沒有您想看的資料
43     </c:if>
44 
45     <br/>
46     
47     <h3>EL表示式中使用二元表示式</h3>
48     <% 
49         session.setAttribute("user",new User("孤傲蒼狼"));
50     %>
51     ${user==null? "對不起,您沒有登陸 " : user.username}
52 
53     <br/>
54     
55     <h3>EL表示式資料回顯</h3>
56     <% 
57         User user = new User();
58         user.setGender("male");
59         //資料回顯
60         request.setAttribute("user",user);
61     %>
62        <input type="radio" name="gender" value="male" ${user.gender=='male'?'checked':''}>63        <input type="radio" name="gender" value="female" ${user.gender=='female'?'checked':''}
            
           

相關推薦

EL表示式大全簡單易懂

一、EL表示式簡介   EL 全名為Expression Language。EL主要作用:   1、獲取資料     EL表示式主要用於替換JSP頁面中的指令碼表示式,以從各種型別的web域 中檢索java物件、獲取資料。(某個web域 中的物件,訪問jav

C# 事務處理 簡單易懂

操作 相互 用戶 因此 成功 綁定 執行 對數 序列 事務是並發控制單位,是用戶定義的一個操作序列(這些操作 要麽都做 要麽都不做)通過事務sql server 能將邏輯相關的一組操作綁定在一起,以便服務器保持數據的完整性特性:原子性(Atomicity)原子性是指事務包含

C#中對sqlserver進行增刪改查操作簡單易懂

uid 數據連接 net cti ade 密碼 logs where Go 1、添加引用using System.Data;using System.Data.SqlData;2、建立於數據庫的連接,建議將它做成一個方法,方便多次利用。string sqlconnectio

vue專案轉換成pdf檔案簡單易懂

1,新增兩個模組html2canvas和jspdf     (1)npm install --save html2canvas(將頁面html轉換成圖片)     (2)npm install --save

HTTP傳輸協議詳解簡單易懂

前言 HTTP: HyperText Transfer Protocol超文字傳輸協議,是網際網路上應用最為廣泛的一種網路協議,所有的WWW檔案都必須遵守這個標準;屬於應用層的面向物件的協議,由於其簡捷、快速的方式,適用於分散式超媒體資訊系統。它於1990年提出,經過幾年的使用與發展,得到不

爬蟲IP池驗證IP是否可用簡單易懂

IP池驗證IP是否可用 使用requests模組演示程式碼 具體的ip池這裡就不演示了,無非就是在代理的網站爬取收集大量的ip進行儲存,並沒有很大的難度,這裡主要演示驗證IP可用性的方法。 import requests url = "http://www.baidu.com/"

深入理解vue中的slot與slot-scope 簡單易懂

走在前端的大道上 插槽,也就是slot,是元件的一塊HTML模板,這塊模板顯示不顯示、以及怎樣顯示由父元件來決定。 實際上,一個slot最核心的兩個問題在這裡就點出來了,是顯示不顯示和怎樣顯示。 由於插槽是一塊模板,所以,對於任何一個元件,從模板種類的角度來分,其實都可以

到底什麼是“機器學習”?機器學習有哪些基本概念?簡單易懂

由現實世界引出“機器學習” 看到烏雲密佈,自己推測出要下雨 通過一個蘋果的表面和大小,來判斷這個蘋果是否好吃 我們通過經驗來進行判斷,這是因為我們積累了許多有用的經驗,通過對有用經驗的分析,就能對遇到的情況做出相應的對策。 計算機中,經驗就是“資料”,判斷模型就是“演算法”,機器學習

【轉載】Java動態代理之JDK實現和CGlib實現簡單易懂

      原文地址:http://www.cnblogs.com/ygj0930/p/6542259.html       一:代理模式(靜態代理)           代理模式是常用設計模式的一種,我們在軟體設計時常用的代理一般是指靜態代理,也就是在程式碼中顯式指定的

並查集 - 食物鏈NOI 2001簡單易懂

題目描述: 動物王國中有三類動物 A,B,C,這三類動物的食物鏈構成了有趣的環形。A 吃 B ,B 吃 C ,C 吃 A 。 現有 N 個動物,以 1~N 編號。每個動物都是 A,B,C 中的一種,但是我們並不知道它到底是哪一種。 有人用兩種說法對這 N 個動物所構成的食物鏈關係進行

正則表示式大全整理版

測試字串的某個模式。例如,可以對一個輸入字串進行測試,看在該字串是否存在一個電話號碼模式或一個信用卡號碼模式。這稱為資料有效性驗證 替換文字。可以在文件中使用一個正則表示式來標識特定文字,然後可以全部將其刪除,或者替換為別的文字 根據模式匹配從字串中提取一個子字串。可以用來

tomcat安裝極其尋找閃退原因簡單易懂

Tomcat安裝配置 2.在安裝tomcat之前,請大家確保已安裝好jdk,安裝jdk的步驟百度下就行。 3、新增系統環境變數,我的電腦->屬性->高階系統設定->環境變數(操作同上) (1)系統變數名: CATALINA_BASE     變數值: D

匈牙利演算法簡單易懂

matrix67(點選開啟連結): 說穿了,就是你從二分圖中找出一條路徑來,讓路徑的起點和終點都是還沒有匹配過的點,並且路徑經過的連線是一條沒被匹配、一條已經匹配過,再下一條又沒匹配這樣交替地出現。找到這樣的路徑後,顯然路徑裡沒被匹配的連線比已經匹配了的連線多一條,於是修改

Java動態代理之JDK實現和CGlib實現簡單易懂

原文地址:http://www.cnblogs.com/ygj0930/p/6542259.html 一:代理模式(靜態代理)           代理模式是常用設計模式的一種,我們在軟體設計時常用的代理一般是指靜態代理,也就是在程式碼中顯式指定的代理。      

EL表示式語言Servlet+jsp

  1:Servlet package cn.mldn.lxh.vo; import java.io.IOException; import java.util.List; import java.util.ArrayList; import javax.servlet.S

簡述OSI七層物理模型簡單易懂

物理層:第一層、建立、維護、斷開物理連線,傳遞介質 bit流,就是那個啥電生磁。 資料鏈路層:第二層、進行硬體的地址定址,差錯校驗,MAC地址和分組交換  也就是裝置和裝置之間通過網路連線的傳輸規範   資料:幀                              

面向連接的Socket Server的簡單實現簡明易懂

nta on() img == con 線程關閉 sse 每一個 sockaddr http://www.cnblogs.com/worldtraveler/p/4685977.html 一、基本原理 有時候我們需要實現一個公共的模塊,需要對多個其他的模塊提供服務,最常用

EL表示式語言

一、EL表示式簡介 EL全名為Expression Language。EL主要作用: 獲取資料:EL表示式主要用於替換JSP頁面中的指令碼表示式,以從各種型別的web域中檢索java物件、獲取資料。(某個web域中的物件,訪問JavaBean的屬性、訪問list集合、訪問

史上最簡單的SpringCloud教程大全Finchley版本

史上最簡單的 SpringCloud 教程 | 第一篇: 服務的註冊與發現Eureka(Finchley版本) https://blog.csdn.net/forezp/article/details/81040925 史上最簡單的SpringCloud教程 | 第二篇: 服務

PTA7-22 龜兔賽跑演算法的分析簡單易懂的程式碼講解

** #include"iostream" using namespace std; int main() { int T,tu,gui,rest=0; int time; tu=gui=0;