因爲在JSP頁面中顯示數據時,常常須要對顯示的字符串進行處理,SUN公司針對於一些常見處理定義了一套EL函數庫供開發者使用。
這些EL函數在JSTL開發包中進行描述,所以在JSP頁面中使用SUN公司的EL函數庫,須要導入JSTL開發包,並在頁面中導入EL函數庫,以下所示:html
MyEclipse自帶的JSTL開發包:java
fn.tld就是EL函數庫的對應的tld描述文件,以下圖所示:數組
在頁面中使用JSTL定義的EL函數:<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>dom
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <%@page import="me.gacl.domain.User"%> 3 <%--引入EL函數庫 --%> 4 <%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> 5 <!DOCTYPE HTML> 6 <html> 7 <head> 8 <title>EL函數庫中的方法使用範例</title> 9 </head> 10 11 <body> 12 <h3>fn:toLowerCase函數使用範例:</h3> 13 <%--fn:toLowerCase函數將一個字符串中包含的全部字符轉換爲小寫形式,並返回轉換後的字符串, 14 它接收一個字符串類型的參數。fn:toLowerCase("")的返回值爲空字符串--%> 15 <%--fn:toLowerCase("Www.CNBLOGS.COM") 的返回值爲字符串「www.cnblogs.com」 --%> 16 fn:toLowerCase("Www.CNBLOGS.COM")的結果是:${fn:toLowerCase("Www.CNBLOGS.COM")} 17 <hr/> 18 <h3>fn:toUpperCase函數使用範例:</h3> 19 <%--fn:toUpperCase函數將一個字符串中包含的全部字符轉換爲大寫形式,並返回轉換後的字符串, 20 它接收一個字符串類型的參數。fn:toUpperCase("")的返回值爲空字符串--%> 21 fn:toUpperCase("cnblogs.com")的結果是:${fn:toUpperCase("cnblogs.com")} 22 <hr/> 23 <h3>fn:trim函數使用範例:</h3> 24 <%--fn:trim函數刪除一個字符串的首尾的空格,並返回刪除空格後的結果字符串, 25 它接收一個字符串類型的參數。須要注意的是,fn:trim函數不能刪除字符串中間位置的空格。--%> 26 fn:trim(" cnblogs.com ")的結果是:${fn:trim(" cnblogs.com ")} 27 <hr/> 28 <h3>fn:length函數使用範例:</h3> 29 <%--fn:length函數返回一個集合或數組大小,或返回一個字符串中包含的字符的個數,返回值爲int類型。 30 fn:length函數接收一個參數,這個參數能夠是<c:forEach>標籤的items屬性支持的任何類型, 31 包括任意類型的數組、java.util.Collection、java.util.Iterator、java.util.Enumeration、 32 java.util.Map等類的實例對象和字符串。 33 若是fn:length函數的參數爲null或者是元素個數爲0的集合或數組對象,則函數返回0;若是參數是空字符串,則函數返回0 34 --%> 35 <% 36 List<String> list = Arrays.asList("1","2","3"); 37 request.setAttribute("list",list); 38 %> 39 fn:length(list)計算集合list的size的值是:${fn:length(list)} 40 <br/> 41 fn:length("cnblogs.com")計算字符串的長度是:${fn:length("cnblogs.com")} 42 <hr/> 43 <h3>fn:split函數使用範例:</h3> 44 <%-- 45 fn:split函數以指定字符串做爲分隔符,將一個字符串分割成字符串數組並返回這個字符串數組。 46 fn:split函數接收兩個字符串類型的參數,第一個參數表示要分割的字符串,第二個參數表示做爲分隔符的字符串 47 --%> 48 fn:split("cnblogs.com",".")[0]的結果是:${fn:split("cnblogs.com",".")[0]} 49 <hr/> 50 <h3>fn:join函數使用範例:</h3> 51 <%-- 52 fn:join函數以一個字符串做爲分隔符,將一個字符串數組中的全部元素合併爲一個字符串並返回合併後的結果字符串。 53 fn:join函數接收兩個參數,第一個參數是要操做的字符串數組,第二個參數是做爲分隔符的字符串。 54 若是fn:join函數的第二個參數是空字符串,則fn:join函數的返回值直接將元素鏈接起來。 55 --%> 56 <% 57 String[] StringArray = {"www","iteye","com"}; 58 pageContext.setAttribute("StringArray", StringArray); 59 %> 60 <%--fn:join(StringArray,".")返回字符串「www.iteye.com」--%> 61 fn:join(StringArray,".")的結果是:${fn:join(StringArray,".")} 62 <br/> 63 <%--fn:join(fn:split("www,iteye,com",","),".")的返回值爲字符串「www.iteye.com」--%> 64 fn:join(fn:split("www,iteye,com",","),".")的結果是:${fn:join(fn:split("www,iteye,com",","),".")} 65 <hr/> 66 67 <h3>fn:indexOf函數使用範例:</h3> 68 <%-- 69 fn:indexOf函數返回指定字符串在一個字符串中第一次出現的索引值,返回值爲int類型。 70 fn:indexOf函數接收兩個字符串類型的參數,若是第一個參數字符串中包含第二個參數字符串, 71 那麼,無論第二個參數字符串在第一個參數字符串中出現幾回,fn:indexOf函數老是返回第一次出現的索引值; 72 若是第一個參數中不包含第二個參數,則fn:indexOf函數返回-1。若是第二個參數爲空字符串,則fn:indexOf函數老是返回0。 73 --%> 74 fn:indexOf("www.iteye.com","eye")的返回值爲:${fn:indexOf("www.iteye.com","eye")} 75 <hr/> 76 77 <h3>fn:contains函數使用範例:</h3> 78 <%-- 79 fn:contains函數檢測一個字符串中是否包含指定的字符串,返回值爲布爾類型。 80 fn:contains函數在比較兩個字符串是否相等時是大小寫敏感的。 81 fn:contains函數接收兩個字符串類型的參數,若是第一個參數字符串中包含第二個參數字符串,則fn:contains函數返回true,不然返回false。 82 若是第二個參數的值爲空字符串,則fn:contains函數老是返回true。 83 實際上,fn:contains(string, substring)等價於fn:indexOf(string, substring) != -1 84 忽略大小的EL函數:fn:containsIgnoreCase 85 --%> 86 <% 87 User user = new User(); 88 String likes[] = {"sing","dance"}; 89 user.setLikes(likes); 90 //數據回顯 91 request.setAttribute("user",user); 92 %> 93 <%--使用el函數回顯數據 --%> 94 <input type="checkbox" name="like" 95 vlaue="sing" ${fn:contains(fn:join(user.likes,","),"sing")?'checked':''}/>唱歌 96 <input type="checkbox" name="like" 97 value="dance" ${fn:contains(fn:join(user.likes,","),"dance")?'checked':''}/>跳舞 98 <input type="checkbox" name="like" 99 value="basketball" ${fn:contains(fn:join(user.likes,","),"basketball")?'checked':''}/>藍球 100 <input type="checkbox" name="like" 101 value="football" ${fn:contains(fn:join(user.likes,","),"football")?'checked':''}/>足球 102 <hr/> 103 104 <h3>fn:startsWith函數和fn:endsWith函數使用範例:</h3> 105 <%-- 106 fn:startsWith函數用於檢測一個字符串是不是以指定字符串開始的,返回值爲布爾類型。 107 fn:startsWith函數接收兩個字符串類型的參數,若是第一個參數字符串以第二個參數字符串開始,則函數返回true,不然函數返回false。 108 若是第二個參數爲空字符串,則fn:startsWith函數老是返回true。 109 與fn:startsWith函數對應的另外一個EL函數爲:fn:endsWith,用於檢測一個字符串是不是以指定字符串結束的,返回值爲布爾類型。 110 --%> 111 fn:startsWith("www.iteye.com","iteye")的返回值爲:${fn:startsWith("www.iteye.com","iteye")} 112 <br/> 113 fn:endsWith("www.iteye.com","com")的返回值爲:${fn:endsWith("www.iteye.com","com")} 114 <hr/> 115 116 <h3>fn:replace使用範例:</h3> 117 <%-- 118 fn:replace函數將一個字符串中包含的指定子字符串替換爲其它的指定字符串,並返回替換後的結果字符串。 119 fn:replace方法接收三個字符串類型的參數,第一個參數表示要操做的源字符串,第二個參數表示源字符串中要被替換的子字符串, 120 第三個參數表示要被替換成的字符串。 121 --%> 122 fn:replace("www iteye com ", " ", ".")的返回值爲字符串:${fn:replace("www iteye com", " ", ".")} 123 <hr/> 124 125 <h3>fn:substring使用範例:</h3> 126 <%-- 127 fn:substring函數用於截取一個字符串的子字符串並返回截取到的子字符串。 128 fn:substring函數接收三個參數,第一個參數是用於指定要操做的源字符串,第二個參數是用於指定截取子字符串開始的索引值, 129 第三個參數是用於指定截取子字符串結束的索引值,第二個參數和第三個參數都是int類型,其值都從0開始。 130 --%> 131 fn:substring("www.it315.org", 4, 9) 的返回值爲字符串:${fn:substring("www.it315.org", 4, 9)} 132 133 <h3>fn:substringAfter函數和fn:substringBefore函數使用範例:</h3> 134 <%-- 135 fn:substringAfter函數用於截取並返回一個字符串中的指定子字符串第一次出現以後的子字符串。 136 fn:substringAfter函數接收兩個字符串類型的參數,第一個參數表示要操做的源字符串,第二個參數表示指定的子字符串 137 與之對應的EL函數爲:fn:substringBefore 138 --%> 139 fn:substringAfter("www.it315.org",".")的返回值爲字符串:${fn:substringAfter("www.it315.org",".")} 140 <br/> 141 fn:substringBefore("www.it315.org",".")的返回值爲字符串:${fn:substringBefore("www.it315.org",".")} 142 <hr/> 143 </body> 144 </html>
jsp頁面中使用到的me.gacl.domain.User類的代碼以下:jsp
1 package me.gacl.domain; 2 3 public class User { 4 5 /** 6 * 興趣愛好 7 */ 8 private String likes[]; 9 10 public String[] getLikes() { 11 return likes; 12 } 13 14 public void setLikes(String[] likes) { 15 this.likes = likes; 16 } 17 }
運行結果以下:函數