成果2021-10和jstl0107el表達式_第1頁
成果2021-10和jstl0107el表達式_第2頁
成果2021-10和jstl0107el表達式_第3頁
成果2021-10和jstl0107el表達式_第4頁
成果2021-10和jstl0107el表達式_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、北京傳智播客教育 EL表達式語言傳智 . 陸遜北京傳智播客教育 Tip:EL表達式簡介EL 全名為Expression Language。EL主要作用:獲取數據:EL表達式主要用于替換JSP頁面中的腳本表達式,以從各種類型的web域 中檢索java對象、獲取數據。(某個web域 中的對象,訪問javabean的屬性、訪問list集合、訪問map集合、訪問數組)執行運算:利用EL表達式可以在JSP頁面中執行一些基本的關系運算、邏輯運算和算術運算,以在JSP頁面中完成一些簡單的邏輯運算。$user=null獲取web開發常用對象EL 表達式定義了一些隱式對象,利用這些隱式對象,web開發人員可以很

2、輕松獲得對web常用對象的引用,從而獲得這些對象中的數據。調用Java方法EL表達式允許用戶開發自定義EL函數,以在JSP頁面中通過EL表達式調用Java類的方法。北京傳智播客教育 Tip:獲取數據(1)使用EL表達式獲取數據語法:“$標識符”EL表達式語句在執行時,會調用pageContext.findAttribute方法,用標識符為關鍵字,分別從page、request、session、application四個域中查找相應的對象,找到則返回相應對象,找不到則返回” (注意,不是null,而是空字符串)。 示例:$user北京傳智播客教育 Tip:獲取數據(2)EL表達式也可以很輕松獲取

3、JavaBean的屬性,或獲取數組、Collection、Map類型集合的數據,例如:$user.address.city$user.list0:訪問有序集合某個位置的元素$map.key : 獲得map集合中指定key的值結合JSTL的foreach標簽,使用EL表達式也可以很輕松迭代各種類型的數組或集合,示例:迭代數組迭代collection類型集合迭代map類型集合北京傳智播客教育 Tip: 執行運算語法:$運算表達式,EL表達式支持如下運算符:empty運算符:檢查對象是否為null或“空”,很好用!三元表達式:$user!=null? : “” ,很好用! 和 . 號運算符北京傳智播

4、客教育 Tip:獲得web開發常用對象EL表達式語言中定義了11個隱含對象,使用這些隱含對象可以很方便地獲取web開發中的一些常見對象,并讀取這些對象的數據。語法:$隱式對象名稱 :獲得對象的引用隱含對象名稱描 述pageContext對應于JSP頁面中的pageContext對象(注意:取的是pageContext對象。)pageScope代表page域中用于保存屬性的Map對象requestScope代表request域中用于保存屬性的Map對象sessionScope代表session域中用于保存屬性的Map對象applicationScope代表application域中用于保存屬性的

5、Map對象北京傳智播客教育 Tip:獲得web開發常用對象隱含對象名稱描 述param表示一個保存了所有請求參數的Map對象paramValues表示一個保存了所有請求參數的Map對象,它對于某個請求參數,返回的是一個stringheader表示一個保存了所有http請求頭字段的Map對象headerValues同上,返回string數組。注意:如果頭里面有“-” ,例Accept-Encoding,則要headerValues“Accept-Encoding”cookie表示一個保存了所有cookie的Map對象initParam表示一個保存了所有web應用初始化參數的map對象北京傳智播客

6、教育 Tip:獲得web開發常用對象Request.getContextPath():EL測試各個隱式對象注意事項測試headerValues時,如果頭里面有“-” ,例Accept-Encoding,則要headerValues“Accept-Encoding”測試cookie時,例$cookie.key取的是cookie對象,如訪問cookie的名稱和值,須$或$cookie.key.value北京傳智播客教育 Tip:使用EL調用Java方法EL表達式語法允許開發人員開發自定義函數,以調用Java類的方法。示例:$prefix:method(params)在EL表達式中調用的只能是Jav

7、a類的靜態方法。這個Java類的靜態方法需要在TLD(Tagliary Definition)文件中描述,才可以被EL表達式調用。EL自定義函數用于擴展EL表達式的功能,可以讓EL表達式完成普通Java程序代碼所能完成的功能。北京傳智播客教育 Tip:EL Function開發步驟一般來說, EL自定義函數開發與應用包括以下三個步驟:編寫一個Java類的靜態方法編寫標簽庫描述符(tld)文件,在tld文件中描述自定義函數。在JSP頁面中導入和使用自定義函數示例:小寫轉大寫北京傳智播客教育 Tip: 開發EL Function注意事項編寫完標簽庫描述文件后,需要將它放置到WEB-INF目錄中或W

8、EB-INF目錄下的除了classes和lib目錄之外的任意子目錄中。 TLD文件中的 元素用指定該TLD文件的URI,在JSP文件中需要通過這個URI來引入該標簽庫描述文件。元素用于描述一個EL自定義函數,其中:子元素用于指定EL自定義函數的名稱。子元素用于指定完整的Java類名,子元素用于指定Java類中的靜態方法的簽名,方法簽名必須指明方法的返回值類型及各個參數的類型,各個參數之間用逗號分隔。北京傳智播客教育 Tip:EL注意事項EL表達式是JSP 2.0規范中的一門技術 。因此,若想正確解析EL表達式,需使用支持Servlet2.4/JSP2.0技術的WEB服務器。注意:有些Tomca

9、t服務器如不能使用EL表達式(1)升級成tomcat6(2)在JSP中加入北京傳智播客教育 Tip: EL表達式保留關鍵字所謂保留字的意思是指變量在命名時,應該避開上述的名字,以免程序編譯時發生錯誤北京傳智播客教育 SUN公司:EL函數庫傳智 . 陸遜北京傳智播客教育 Tip:JSTL中的常用EL函數由于在JSP頁面中顯示數據時,經常需要對顯示的字符串進行處理,SUN公司針對于一些常見處理定義了一套EL函數庫供開發者使用。這些EL函數在JSTL開發包中進行描述,因此在JSP頁面中使用SUN公司的EL函數庫,需要導入JSTL開發包,并在頁面中導入EL函數庫,如下所示:在頁面中使用JSTL定義的E

10、L函數:北京傳智播客教育 Tip:fn:toLowerCase fn:toLowerCase函數將一個字符串中包含的所有字符轉換為小寫形式,并返回轉換后的字符串,它接收一個字符串類型的參數,例如fn:toLowerCase( ) 的返回值為字符串“ ”fn:toLowerCase()的返回值為空字符串北京傳智播客教育 Tip:fn:toUpperCase fn:toUpperCase函數將一個字符串中包含的所有字符轉換為大寫形式,并返回轉換后的字符串,它接收一個字符串類型的參數。例如:fn:toUpperCase( ) 的返回值為字符串“ ”fn:toUpperCase()的返回值為空字符串北

11、京傳智播客教育 Tip:fn:trim fn:trim函數刪除一個字符串的首尾的空格,并返回刪除空格后的結果字符串,它接收一個字符串類型的參數。需要注意的是,fn:trim函數不能刪除字符串中間位置的空格。例如,fn:trim( ) 的返回值為字符串“ ”。北京傳智播客教育 Tip:fn:length fn:length函數返回一個集合或數組大小,或返回一個字符串中包含的字符的個數,返回值為int類型。fn:length函數接收一個參數,這個參數可以是標簽的items屬性支持的任何類型,包括任意類型的數組、java.util.Collection、java.util.Iterator、java

12、.util.Enumeration、java.util.Map等類的實例對象和字符串。如果fn:length函數的參數為null或者是元素個數為0的集合或數組對象,則函數返回0;如果參數是空字符串,則函數返回0。 北京傳智播客教育 Tip:fn:split fn:split函數以指定字符串作為分隔符,將一個字符串分割成字符串數組并返回這個字符串數組。fn:split函數接收兩個字符串類型的參數,第一個參數表示要分割的字符串,第二個參數表示作為分隔符的字符串。例如,fn:split( , .)1的返回值為字符串“it315”。北京傳智播客教育 Tip:fn:join fn:join函數以一個字符

13、串作為分隔符,將一個字符串數組中的所有元素合并為一個字符串并返回合并后的結果字符串。fn:join函數接收兩個參數,第一個參數是要操作的字符串數組,第二個參數是作為分隔符的字符串。如果fn:join函數的第二個參數是空字符串,則fn:join函數的返回值直接將元素連接起來。例如:假設stringArray是保存在Web域中的一個屬性,它表示一個值為www,it315,org的字符串數組,則fn:join(stringArray, “.)返回字符串“ ”fn:join(fn:split(www,it315,org, ,), .) 的返回值為字符串“ ”北京傳智播客教育 Tip:fn:indexO

14、f fn:indexOf函數返回指定字符串在一個字符串中第一次出現的索引值,返回值為int類型。fn:indexOf函數接收兩個字符串類型的參數,如果第一個參數字符串中包含第二個參數字符串,那么,不管第二個參數字符串在第一個參數字符串中出現幾次,fn:indexOf函數總是返回第一次出現的索引值;如果第一個參數中不包含第二個參數,則fn:indexOf函數返回-1。如果第二個參數為空字符串,則fn:indexOf函數總是返回0。例如:fn:indexOf( ,t3) 的返回值為5北京傳智播客教育 Tip:fn:contains fn:contains函數檢測一個字符串中是否包含指定的字符串,返

15、回值為布爾類型。fn:contains函數在比較兩個字符串是否相等時是大小寫敏感的。fn:contains函數接收兩個字符串類型的參數,如果第一個參數字符串中包含第二個參數字符串,則fn:contains函數返回true,否則返回false。如果第二個參數的值為空字符串,則fn:contains函數總是返回true。實際上,fn:contains(string, substring)等價于fn:indexOf(string, substring) != -1。忽略大小的EL函數:fn:containsIgnoreCase 北京傳智播客教育 Tip:fn:startsWith fn:starts

16、With函數用于檢測一個字符串是否是以指定字符串開始的,返回值為布爾類型。fn:startsWith函數接收兩個字符串類型的參數,如果第一個參數字符串以第二個參數字符串開始,則函數返回true,否則函數返回false。如果第二個參數為空字符串,則fn:startsWith函數總是返回true。例如:fn:startsWith( ,it315)的返回值為false與之對應的EL函數:fn:endsWith 北京傳智播客教育 Tip:fn:replace fn:replace函數將一個字符串中包含的指定子字符串替換為其它的指定字符串,并返回替換后的結果字符串。fn:replace方法接收三個字符串類型的參數,第一個參數表示要操作的源字符串,第二個參數表示源字符串中要被替換的子字符串,第三個參數表示要被替換成的字符串。例如:fn:replace(www it315 org, , .)的返回值為字符串“ ”北京傳智播客教育 Tip:fn:substring fn:substring函數用于截取一個字符串的子字符串并返回截取到的子字符串。fn:substring函數接收三個參數,第一個參數是用于指定要操作的源字符串,第二個參數是用于指定截取子字符串開始的索引值,第三個參數是用于指定截取子字符串結束的索引值,第二個參數和第三個參數都是int

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論