jsp中常用操作字符串的el表達式
由於在JSP頁面中顯示數據時,經常需要對顯示的字符串進行處理,SUN公司針對於一些常見處理定義了一套EL函數庫供開發者使用。
准備工作:
1)導入jar包:standard.jar和jstl.jar
2)在頁面中使用JSTL定義的EL函數:
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%
示例:
轉小寫: ${fn:toLowerCase("www.ITCAST.Cn")}
轉大寫: ${fn:toUpperCase("www.ITCAST.Cn")}
求長度: ${fn:length(" j i m ")}
去空格求長度:${fn:length(fn:trim(" j i m "))}
拆分字符串: ${fn:split("www@itcast@cn","@")[0]}
<%
String[] strArray = {"haha","hehe","hoho"};
pageContext.setAttribute("STRARRAY",strArray);
%>
拼接字符串: ${fn:join(STRARRAY,"@")}
查找: ${fn:indexOf("www.itcast.cn","qq")
包含1: ${fn:contains("WWW.itcast.cn","www")}
包含2: ${fn:containsIgnoreCase("WWW.itcast.cn","www")}
以XX開頭: ${fn:startsWith("www.itcast.cn","www")}
以YY結束: ${fn:endsWith("www.itcast.cn","www")}
替換: ${fn:replace("www.itcast.cn",".","#")}
截取: ${fn:substring("www.itcast.cn",11,13)}
截取After: ${fn:substringAfter("www.itcast.cn",".")}
截取Before: ${fn:substringBefore("www.itcast.cn",".")}
注意:EL函數可以不限層次嵌套,只需使用一次$即可
細節:
1) fn:length函數返回一個集合或數組大小,或返回一個字符串中包含的字符的個數,返回值為int類型。fn:length函數接收一個參
數,這個參數可以是<c:forEach>標簽的items屬性支持的任何類型,包括任意類型的數組、java.util.Collection、java.util.Iterator、
java.util.Enumeration、java.util.Map等類的實例對象和字符串。如果fn:length函數的參數為null或者是元素個數為0的集合
或數組對象,則函數返回0;如果參數是空字符串,則函數返回0。
2) fn:split函數接收兩個字符串類型的參數,第一個參數表示要分割的字符串,第二個參數表示作為分隔符的字符串。
3) fn:join函數以一個字符串作為分隔符,將一個字符串數組中的所有元素合並為一個字符串並返回合並后的結果字符串。
fn:join函數接收兩個參數,第一個參數是要操作的字符串數組,第二個參數是作為分隔符的字符串。
如果fn:join函數的第二個參數是空字符串,則fn:join函數的返回值直接將元素連接起來。例如:
假設stringArray是保存在Web域中的一個屬性,它表示一個值為{"www","it315","org"}的字符串數組,則fn:join(stringArray, “.")
返回字符串“www.it315.org”。
fn:join(fn:split("www,it315,org", ","), ".") 的返回值為字符串“www.it315.org”
4) fn:indexOf函數返回指定字符串在一個字符串中第一次出現的索引值,返回值為int類型。
fn:indexOf函數接收兩個字符串類型的參數,如果第一個參數字符串中包含第二個參數字符串,那么,不管第二個參數字符串在
第一個參數字符串中出現幾次,fn:indexOf函數總是返回第一次出現的索引值;
如果第一個參數中不包含第二個參數,則fn:indexOf函數返回-1;
如果第二個參數為空字符串,則fn:indexOf函數總是返回0。
5) fn:contains函數檢測一個字符串中是否包含指定的字符串,返回值為布爾類型。fn:contains函數在比較兩個字符串是否相等時是
大小寫敏感的。
6) fn:replace函數將一個字符串中包含的指定子字符串替換為其它的指定字符串,並返回替換后的結果字符串。fn:replace方法接收
三個字符串類型的參數:
第一個參數表示要操作的源字符串;
第二個參數表示源字符串中要被替換的子字符串;
第三個參數表示要被替換成的字符串。例如:
fn:replace("www it315 org", " ", ".")的返回值為字符串“www.it315.org”
7) fn:substring函數用於截取一個字符串的子字符串並返回截取到的子字符串。fn:substring函數接收三個參數:
第一個參數是用於指定要操作的源字符串;
第二個參數是用於指定截取子字符串開始的索引值;
第三個參數是用於指定截取子字符串結束的索引值;
第二個參數和第三個參數都是int類型,其值都從0開始。例如:
fn:substring("www.it315.org", 4, 9) 的返回值為字符串“it315”
8) fn:substringAfter函數用於截取並返回一個字符串中的指定子字符串第一次出現之后的子字符串。fn:substringAfter函數接收兩
個字符串類型的參數:
第一個參數表示要操作的源字符串;
第二個參數表示指定的子字符串,例如:
fn:substringAfter(“www.it315.org”, “.”)的返回值為字符串“it315.org”。
與之對應的EL函數為:fn:substringBefore