摘要:概念表達式全名為,就是為了替代腳本表達式。作用獲取數據表達式主要用于替換頁面中的腳本表達式,以從各種類型的域中檢索對象獲取數據。調用方法表達式允許用戶開發自定義函數,以在頁面中通過表達式調用類的方法。
概念
EL表達式:EL 全名為Expression Language,就是為了替代<%= %>腳本表達式。
作用獲取數據:
EL表達式主要用于替換JSP頁面中的腳本表達式,以從各種類型的web域中檢索java對象、獲取數據。(某個web域 中的對象,訪問javabean的屬性、訪問list集合、訪問map集合、訪問數組)
執行運算:
利用EL表達式可以在JSP頁面中執行一些基本的關系運算、邏輯運算和算術運算,以在JSP頁面中完成一些簡單的邏輯運算。${user==null}
獲取web開發常用對象
EL 表達式定義了一些隱式對象,利用這些隱式對象,web開發人員可以很輕松獲得對web常用對象的引用,從而獲得這些對象中的數據。
調用Java方法
EL表達式允許用戶開發自定義EL函數,以在JSP頁面中通過EL表達式調用Java類的方法。
其實感覺這個地方是應該會很好玩的!例如自定標簽和自定義函數!
使用EL表達式獲取數據使用EL表達式獲取數據語法:“${標識符}”
EL表達式語句在執行時,會調用pageContext.findAttribute方法,用標識符為關鍵字,分別從page、request、session、application四個域中查找相應的對象,找到則返回相應對象,找不到則返回””
(注意,不是null,而是空字符串)。
示例:${user}
<%=((HttpServletRequest)pageContext.getRequest()).getContextPath() %> 在獲取后對象后要加括號才能繼續調用對象身上的方法
${pageContext.request.contextPath} 這個還是需要記憶下有用
EL表達式也可以很輕松獲取JavaBean的屬性或獲取數組、Collection、Map類型集合的數據,例如:
${strs[1]} //獲取數組中的元素 ${user.address.city}//鏈式操作獲取值 ${user.list[0]}:訪問有序集合某個位置的元素 ${map.key} : 獲得map集合中指定key的值
EL表達式執行運算[重點中的重點]通過JSTL標簽中的C標簽的foreach進行迭代,這個我們已經做過了!
(1) 算數運算:所有參與元算的元素都會被轉成數字,如果不能轉就報錯,空元素參與運算當作沒參與。 (2) 關系運算:必須記憶下來 == ---> eq 例如:${5==5}或${5 eq 5} != ---> ne < ---> lt > ---> gt <= ---> le >= ---> ge (3) **邏輯運算:** && ---> and 例如:${A&&B}或${A and B} || ---> or ! ---> not (4) empty/not empty 判斷一個對象或集合或數組是否為null或長度為0 (5) 條件表達式 ${user!= null ? user.name : "";//三元運算符 (6) []和.號運算符使用EL表達式獲得Web開發常用對象
EL表達式語言中定義了 11個隱含對象 ,使用這些隱含對象可以很方便地獲取web開發中的一些常見對象,并讀取這些對象的數據。
語法:${隱式對象名稱} :獲得對象的引用
隱藏對象 | 描述 |
---|---|
pageContext | 代表pageContext對象,注意和pageScope進行區分 |
pageScope | 代表page域,可以用來獲取page域中的屬性 |
reqeustScope | 代表reqeust域,可以用來獲取reqeust域中的屬性 |
sessionScope | 代表session域,可以用來獲取session域中的屬性 |
applicationScope | 代表application域,可以用來獲取application域中的屬性 |
param | 代表請求參數組成的map集合${param.userName} 相當于 request.getParameter("userName") |
paramValues | 代表請求參宿組成的map集合,但是此集合的value是String[],用來獲取一名多值的param 相當于 request.getParameterValues("userName") |
cookie | 獲取cookie組成的map對象,此map的值是一個cookie對象${cookie.cookieName.cookieValue} |
header | 獲取所有HTTP請求字段的map對象 |
headerValues | 同上,獲取請求頭組成的map,但是value是一個String[] |
initParam | 以map封裝的web.xml中配置的整個web應用的初始化參數 |
示例測試代碼:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%-- ${pageContext } ${pageScope } ${requestScope } ${sessionScope } ${applicationScope } --%> 獲取請求參數 ${param.name }
獲取請求頭 <%= request.getHeader("Host") %> ${header.Host } ${header["Accept-Language"] }
el表達式獲取cookie信息
<% Cookie cookie = new Cookie("host","localhost"); response.addCookie(cookie); %> <% Cookie [] cs = request.getCookies(); if(cs!=null){ for(Cookie c : cs){ if("host".equals(c.getName())){ out.write(c.getValue()); } } } %>
cookie.host.value: ${cookie.host.value}
整個web應用的初始化參數
<%= application.getInitParameter("data1") %>
initParam: ${initParam.data1 }
pageContext.request:${pageContext.request }
pageScope.request:${pageScope.request }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65047.html
摘要:前言由于寫的文章已經是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 前言 由于寫的文章已經是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 由于更新比較頻繁,因此隔一段時間才會更新目錄導航哦~想要獲取最新原創的技術文章歡迎關注我的公眾號:Java3y Java3y文章目錄導航 Java基礎 泛型就這么簡單 注解就這么簡單 Druid數據庫連接池...
摘要:前言月份開始出沒社區,現在差不多月了,按照工作的說法,就是差不多過了三個月的試用期,準備轉正了一般來說,差不多到了轉正的時候,會進行總結或者分享會議那么今天我就把看過的一些學習資源主要是博客,博文推薦分享給大家。 1.前言 6月份開始出沒社區,現在差不多9月了,按照工作的說法,就是差不多過了三個月的試用期,準備轉正了!一般來說,差不多到了轉正的時候,會進行總結或者分享會議!那么今天我就...
摘要:擴展及應用介紹與區別介紹支持開發者為其編寫各種各樣的擴展與應用來擴充其功能。用處安裝擴展之后,就會讀取擴展中的文件。結語以上就是第一章的總結,接下來的筆記,敬請期待原書項目代碼下載擴展及其應用開發 讀書筆記介紹 寒假想自己做一個chrome擴展,便從圖書館借了這本書。同時,為了培養自己的好習慣,做沉淀,便讀一章寫一篇總結,全書總共10章,將會分為10篇博文。歡迎大家多多指正,也希望大家...
閱讀 472·2021-11-22 12:05
閱讀 1533·2021-11-17 09:33
閱讀 3579·2021-11-11 16:54
閱讀 2659·2021-10-14 09:49
閱讀 4024·2021-09-06 15:01
閱讀 1821·2019-08-29 17:23
閱讀 693·2019-08-29 14:09
閱讀 712·2019-08-29 12:28