Posted on 2009-11-06 15:12
skycity 閱讀(606)
評論(0) 編輯 收藏 所屬分類:
基本開發
稱呼 Functions 標簽庫為標簽庫,倒不如稱呼其為函數庫來得更容易理解些。因為 Functions 標簽庫并沒有提供傳統的標簽來為 JSP 頁面的工作服務,而是被用于 EL 表達式語句中。在 JSP2.0 規范下出現的 Functions 標簽庫為 EL 表達式語句提供了許多更為有用的功能。 Functions 標簽庫分為兩大類,共 16 個函數。
長度函數: 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
以下是各個函數的用途和屬性以及簡單示例。
9.7.1 長度函數 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 ”。
9.7.2 判斷函數 fn:contains 函數
fn:contains 函數用來判斷源字符串是否包含子字符串。它包括 string 和 substring 兩個參數,它們都是 String 類型,分布表示源字符串和子字符串。其返回結果為一個 boolean 類型的值。下面看一個示例。
${fn:contains("ABC", "a")}
${fn:contains("ABC", "A")}
前者返回“ false ”,后者返回“ true ”。
9.7.3 fn:containsIgnoreCase 函數
fn:containsIgnoreCase 函數與 fn:contains 函數的功能差不多,唯一的區別是 fn:containsIgnoreCase 函數對于子字符串的包含比較將忽略大小寫。它與 fn:contains 函數相同,包括 string 和 substring 兩個參數,并返回一個 boolean 類型的值。下面看一個示例。
${fn:containsIgnoreCase("ABC", "a")}
${fn:containsIgnoreCase("ABC", "A")}
前者和后者都會返回“ true ”。
9.7.4 詞頭判斷函數 fn:startsWith 函數
fn:startsWith 函數用來判斷源字符串是否符合一連串的特定詞頭。它除了包含一個 string 參數外,還包含一個 subffx 參數,表示詞頭字符串,同樣是 String 類型。該函數返回一個 boolean 類型的值。下面看一個示例。
${fn:startsWith ("ABC", "ab")}
${fn:startsWith ("ABC", "AB")}
前者返回“ false ”,后者返回“ true ”。
9.7.5 詞尾判斷函數 fn:endsWith 函數
fn:endsWith 函數用來判斷源字符串是否符合一連串的特定詞尾。它與 fn:startsWith 函數相同,包括 string 和 subffx 兩個參數,并返回一個 boolean 類型的值。下面看一個示例。
${fn:endsWith("ABC", "bc")}
${fn:endsWith("ABC", "BC")}
前者返回“ false ”,后者返回“ true ”。
9.7.6 字符實體轉換函數 fn:escapeXml 函數
fn:escapeXml 函數用于將所有特殊字符轉化為字符實體碼。它只包含一個 string 參數,返回一個 String 類型的值。
9.7.8 字符匹配函數 fn:indexOf 函數
fn:indexOf 函數用于取得子字符串與源字符串匹配的開始位置,若子字符串與源字符串中的內容沒有匹配成功將返回“ -1 ”。它包括 string 和 substring 兩個參數,返回結果為 int 類型。下面看一個示例。
${fn:indexOf("ABCD","aBC")}
${fn:indexOf("ABCD","BC")}
前者由于沒有匹配成功,所以返回 -1 ,后者匹配成功將返回位置的下標,為 1 。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/lpdx111/archive/2008/12/17/3543430.aspx
Lyyb2001