JSTL function 標籤 使用

Web.xml 文件中:
<taglib>
         <taglib-uri>http://java.sun.com/jstl/fn</taglib-uri>
         <taglib-location>/WEB-INF/fn.tld</taglib-location>
</taglib>

長度函數: fn:length

字符串處理函數: fn:contains 、 fn:containsIgnoreCase 、 fn:endsWith 、 fn:escapeXml 、 fn:indexOf 、 fn:join 、 fn:replace 、 fn:split 、 fn:startsWith 、 fn:substring 、 fn:substringAfter 、 fn:substringBefore 、 fn:toLowerCase 、 fn:toUpperCase 、 fn:trim

JSP 頁面上:

<%@ taglib uri="/WEB-INF/fn.tld" prefix="fn" %>

${fn:toUpperCase("sdjkhjshjhjd") }

這個例子將輸出 這些字母的大寫字母
一.長度函數 fn:length 函數

長度函數 fn:length 的出現有重要的意義。在 JSTL1.0 中,有一個功能被忽略了,那就是對集合的長度取值。雖然 java.util.Collection 接口定義了 size 方法,但是該方法不是一個標準的 JavaBean 屬性方法(沒有 get,set 方法),因此,無法通過 EL 表達式“ ${collection.size} ”來輕鬆取得。

fn:length 函數正是爲了解決這個問題而被設計出來的。它的參數爲 input ,將計算通過該屬性傳入的對象長度。該對象應該爲集合類型或 String 類型。其返回結果是一個 int 類型的值。下面看一個示例。

<%ArrayList arrayList1 = new ArrayList();

                            arrayList1.add("aa");

                            arrayList1.add("bb");

                            arrayList1.add("cc");

%>

<%request.getSession().setAttribute("arrayList1", arrayList1);%>

${fn:length(sessionScope.arrayList1)}

假設一個 ArrayList 類型的實例“ arrayList1 ”,併爲其添加三個字符串對象,使用 fn:length 函數後就可以取得返回結果爲“ 3 ”。
二.判斷函數 fn:contains 函數

fn:contains 函數用來判斷源字符串是否包含子字符串。它包括 string 和 substring 兩個參數,它們都是 String 類型,分佈表示源字符串和子字符串。其返回結果爲一個 boolean 類型的值。下面看一個示例。

${fn:contains("ABC", "a")}<br>

${fn:contains("ABC", "A")}<br>

前者返回“ false ”,後者返回“ true ”。
三. fn:containsIgnoreCase 函數

fn:containsIgnoreCase 函數與 fn:contains 函數的功能差不多,唯一的區別是 fn:containsIgnoreCase 函數對於子字符串的包含比較將忽略大小寫。它與 fn:contains 函數相同,包括 string 和 substring 兩個參數,並返回一個 boolean 類型的值。下面看一個示例。

${fn:containsIgnoreCase("ABC", "a")}<br>

${fn:containsIgnoreCase("ABC", "A")}<br>

前者和後者都會返回“ true ”。
四.詞頭判斷函數 fn:startsWith 函數

fn:startsWith 函數用來判斷源字符串是否符合一連串的特定詞頭。它除了包含一個 string 參數外,還包含一個 subffx 參數,表示詞頭字符串,同樣是 String 類型。該函數返回一個 boolean 類型的值。下面看一個示例。

${fn:startsWith ("ABC", "ab")}<br>

${fn:startsWith ("ABC", "AB")}<br>

前者返回“ false ”,後者返回“ true ”。
五.詞尾判斷函數 fn:endsWith 函數

fn:endsWith 函數用來判斷源字符串是否符合一連串的特定詞尾。它與 fn:startsWith 函數相同,包括 string 和 subffx 兩個參數,並返回一個 boolean 類型的值。下面看一個示例。

${fn:endsWith("ABC", "bc")}<br>

${fn:endsWith("ABC", "BC")}<br>

前者返回“ false ”,後者返回“ true ”。
六.字符實體轉換函數 fn:escapeXml 函數

fn:escapeXml 函數用於將所有特殊字符轉化爲字符實體碼。它只包含一個 string 參數,返回一個 String 類型的值。
七.字符匹配函數 fn:indexOf 函數

fn:indexOf 函數用於取得子字符串與源字符串匹配的開始位置,若子字符串與源字符串中的內容沒有匹配成功將返回“ -1 ”。它包括 string 和 substring 兩個參數,返回結果爲 int 類型。下面看一個示例。

${fn:indexOf("ABCD","aBC")}<br>

${fn:indexOf("ABCD","BC")}<br>

前者由於沒有匹配成功,所以返回 -1 ,後者匹配成功將返回位置的下標,爲 1 。
八.分隔符函數 fn:join 函數

fn:join 函數允許爲一個字符串數組中的每一個字符串加上分隔符,並連接起來。它的參數、返回結果和描述如表 9.25 所示:

表 9.25   fn:join 函數


            參數                   描述
            array                字符串數組。其類型必須爲 String[] 類型
            separator         分隔符。其類型必須爲 String 類型
            返回結果            返回一個 String 類型的值

下面看一個示例。

<% String[] stringArray = {"a","b","c"}; %>

<%request.getSession().setAttribute("stringArray", stringArray);%>

${fn:join(sessionScope.stringArray,";")}<br>

定義數組並放置到 Session 中,然後通過 Session 得到該字符串數組,使用 fn:join 函數並傳入分隔符“ ; ”,得到的結果爲“ a;b;c ”。
九.替換函數 fn:replace 函數

fn:replace 函數允許爲源字符串做替換的工作。它的參數、返回結果和描述如表 9.26 所示:

表 9.26   fn:replace 函數

                參數                       描述
                inputString           源字符串。其類型必須爲 String 類型
                beforeSubstring   指定被替換字符串。其類型必須爲 String 類型
                afterSubstring      指定替換字符串。其類型必須爲 String 類型
                返回結果                返回一個 String 類型的值

下面看一個示例。

${fn:replace("ABC","A","B")}<br>

將“ ABC ”字符串替換爲“ BBC ”,在“ ABC ”字符串中用“ B ”替換了“ A ”。
十.分隔符轉換數組函數 fn:split 函數

fn:split 函數用於將一組由分隔符分隔的字符串轉換成字符串數組。它的參數、返回結果和描述如表 9.27 所示:

表 9.27   fn:split 函數

                參數                描述
                string             源字符串。其類型必須爲 String 類型
                delimiters       指定分隔符。其類型必須爲 String 類型
                返回結果          返回一個 String[] 類型的值

下面看一個示例。

${fn:split("A,B,C",",")}<br>

將“ A,B,C ”字符串轉換爲數組 {A,B,C} 。
十一.字符串截取函數 fn:substring 函數

fn:substring 函數用於截取字符串。它的參數、返回結果和描述如表 9.28 所示:

表 9.28   fn:substring 函數

                參數                描述
                string             源字符串。其類型必須爲 String 類型
                beginIndex    指定起始下標(值從 0 開始)。其類型必須爲 int 類型
                endIndex      指定結束下標(值從 0 開始)。其類型必須爲 int 類型
                返回結果         返回一個 String 類型的值

下面看一個示例。

${fn:substring("ABC","1","2")}<br>
截取結果爲“ B ”。

十二.起始到定位截取字符串函數 fn:substringBefore 函數

fn:substringBefore 函數允許截取源字符從開始到某個字符串。它的參數和 fn:substringAfter 函數相同,不同的是 substring 表示的是結束字符串。下面看一個示例。

${fn:substringBefore("ABCD","BC")}<br>

截取的結果爲“ A ”。
十三.小寫轉換函數 fn:toLowerCase 函數

fn:toLowerCase 函數允許將源字符串中的字符全部轉換成小寫字符。它只有一個表示源字符串的參數 string ,函數返回一個 String 類型的值。下面看一個示例。

${fn:toLowerCase("ABCD")}<br>

轉換的結果爲“ abcd ”。
十四.大寫轉換函數 fn:toUpperCase 函數

fn:toUpperCase 函數允許將源字符串中的字符全部轉換成大寫字符。它與 fn:toLowerCase 函數相同,也只有一個 String 參數,並返回一個 String 類型的值。下面看一個示例。

${fn:toUpperCase("abcd")}<br>

轉換的結果爲“ ABCD ”。
十五.空格刪除函數 fn:trim 函數

fn:trim 函數將刪除源字符串中結尾部分的“空格”以產生一個新的字符串。它與 fn:toLowerCase 函數相同,只有一個 String 參數,並返回一個 String 類型的值。下面看一個示例。

${fn:trim("AB C ")}D<br>

轉換的結果爲“ AB CD ”,注意,它將只刪除詞尾的空格而不是全部,因此“ B ”和“ C ”之間仍然留有一個空格。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章