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