<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JSTL詳解(七)

    9.7?Functions 標(biāo)簽庫(kù)

    稱(chēng)呼 Functions 標(biāo)簽庫(kù)為標(biāo)簽庫(kù),倒不如稱(chēng)呼其為函數(shù)庫(kù)來(lái)得更容易理解些。因?yàn)?/span> Functions 標(biāo)簽庫(kù)并沒(méi)有提供傳統(tǒng)的標(biāo)簽來(lái)為 JSP 頁(yè)面的工作服務(wù),而是被用于 EL 表達(dá)式語(yǔ)句中。在 JSP2.0 規(guī)范下出現(xiàn)的 Functions 標(biāo)簽庫(kù)為 EL 表達(dá)式語(yǔ)句提供了許多更為有用的功能。 Functions 標(biāo)簽庫(kù)分為兩大類(lèi),共 16 個(gè)函數(shù)。

    q???????? 長(zhǎng)度函數(shù): fn:length

    q???????? 字符串處理函數(shù): 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

    以下是各個(gè)函數(shù)的用途和屬性以及簡(jiǎn)單示例。

    9.7.1? 長(zhǎng)度函數(shù) fn:length 函數(shù)

    長(zhǎng)度函數(shù) fn:length 的出現(xiàn)有重要的意義。在 JSTL1.0 中,有一個(gè)功能被忽略了,那就是對(duì)集合的長(zhǎng)度取值。雖然 java.util.Collection 接口定義了 size 方法,但是該方法不是一個(gè)標(biāo)準(zhǔn)的 JavaBean 屬性方法(沒(méi)有 get,set 方法),因此,無(wú)法通過(guò) EL 表達(dá)式“ ${collection.size} ”來(lái)輕松取得。

    fn:length 函數(shù)正是為了解決這個(gè)問(wèn)題而被設(shè)計(jì)出來(lái)的。它的參數(shù)為 input ,將計(jì)算通過(guò)該屬性傳入的對(duì)象長(zhǎng)度。該對(duì)象應(yīng)該為集合類(lèi)型或 String 類(lèi)型。其返回結(jié)果是一個(gè) int 類(lèi)型的值。下面看一個(gè)示例。

    <%ArrayList arrayList1 = new ArrayList();

    ??????????????????????????? arrayList1.add("aa");

    ??????????????????????????? arrayList1.add("bb");

    ??????????????????????????? arrayList1.add("cc");

    %>

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

    ${fn:length(sessionScope.arrayList1)}

    假設(shè)一個(gè) ArrayList 類(lèi)型的實(shí)例“ arrayList1 ”,并為其添加三個(gè)字符串對(duì)象,使用 fn:length 函數(shù)后就可以取得返回結(jié)果為“ 3 ”。

    9.7.2? 判斷函數(shù) fn:contains 函數(shù)

    fn:contains 函數(shù)用來(lái)判斷源字符串是否包含子字符串。它包括 string substring 兩個(gè)參數(shù),它們都是 String 類(lèi)型,分布表示源字符串和子字符串。其返回結(jié)果為一個(gè) boolean 類(lèi)型的值。下面看一個(gè)示例。

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

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

    前者返回“ false ”,后者返回“ true ”。

    9.7.3?fn:containsIgnoreCase 函數(shù)

    fn:containsIgnoreCase 函數(shù)與 fn:contains 函數(shù)的功能差不多,唯一的區(qū)別是 fn:containsIgnoreCase 函數(shù)對(duì)于子字符串的包含比較將忽略大小寫(xiě)。它與 fn:contains 函數(shù)相同,包括 string substring 兩個(gè)參數(shù),并返回一個(gè) boolean 類(lèi)型的值。下面看一個(gè)示例。

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

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

    前者和后者都會(huì)返回“ true ”。

    9.7.4? 詞頭判斷函數(shù) fn:startsWith 函數(shù)

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

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

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

    前者返回“ false ”,后者返回“ true ”。

    9.7.5? 詞尾判斷函數(shù) fn:endsWith 函數(shù)

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

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

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

    前者返回“ false ”,后者返回“ true ”。

    9.7.6? 字符實(shí)體轉(zhuǎn)換函數(shù) fn:escapeXml 函數(shù)

    fn:escapeXml 函數(shù)用于將所有特殊字符轉(zhuǎn)化為字符實(shí)體碼。它只包含一個(gè) string 參數(shù),返回一個(gè) String 類(lèi)型的值。

    9.7.8? 字符匹配函數(shù) fn:indexOf 函數(shù)

    fn:indexOf 函數(shù)用于取得子字符串與源字符串匹配的開(kāi)始位置,若子字符串與源字符串中的內(nèi)容沒(méi)有匹配成功將返回“ -1 ”。它包括 string substring 兩個(gè)參數(shù),返回結(jié)果為 int 類(lèi)型。下面看一個(gè)示例。

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

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

    前者由于沒(méi)有匹配成功,所以返回 -1 ,后者匹配成功將返回位置的下標(biāo),為 1

    9.7.9? 分隔符函數(shù) fn:join 函數(shù)

    fn:join 函數(shù)允許為一個(gè)字符串?dāng)?shù)組中的每一個(gè)字符串加上分隔符,并連接起來(lái)。它的參數(shù)、返回結(jié)果和描述如表 9.25 所示:

    9.25   fn:join 函數(shù)

    參數(shù)

    描述

    array

    字符串?dāng)?shù)組。其類(lèi)型必須為 String[] 類(lèi)型

    separator

    分隔符。其類(lèi)型必須為 String 類(lèi)型

    返回結(jié)果

    返回一個(gè) String 類(lèi)型的值

    下面看一個(gè)示例。

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

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

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

    定義數(shù)組并放置到 Session 中,然后通過(guò) Session 得到該字符串?dāng)?shù)組,使用 fn:join 函數(shù)并傳入分隔符“ ; ”,得到的結(jié)果為“ a;b;c ”。

    9.7.10? 替換函數(shù) fn:replace 函數(shù)

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

    9.26   fn:replace 函數(shù)

    參數(shù)

    描述

    inputString

    源字符串。其類(lèi)型必須為 String 類(lèi)型

    beforeSubstring

    指定被替換字符串。其類(lèi)型必須為 String 類(lèi)型

    afterSubstring

    指定替換字符串。其類(lèi)型必須為 String 類(lèi)型

    返回結(jié)果

    返回一個(gè) String 類(lèi)型的值

    下面看一個(gè)示例。

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

    將“ ABC ”字符串替換為“ BBC ”,在“ ABC ”字符串中用“ B ”替換了“ A ”。

    9.7.11? 分隔符轉(zhuǎn)換數(shù)組函數(shù) fn:split 函數(shù)

    fn:split 函數(shù)用于將一組由分隔符分隔的字符串轉(zhuǎn)換成字符串?dāng)?shù)組。它的參數(shù)、返回結(jié)果和描述如表 9.27 所示:

    9.27   fn:split 函數(shù)

    參數(shù)

    描述

    string

    源字符串。其類(lèi)型必須為 String 類(lèi)型

    delimiters

    指定分隔符。其類(lèi)型必須為 String 類(lèi)型

    返回結(jié)果

    返回一個(gè) String[] 類(lèi)型的值

    下面看一個(gè)示例。

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

    將“ A,B,C ”字符串轉(zhuǎn)換為數(shù)組 {A,B,C}

    9.7.12? 字符串截取函數(shù) fn:substring 函數(shù)

    fn:substring 函數(shù)用于截取字符串。它的參數(shù)、返回結(jié)果和描述如表 9.28 所示:

    9.28   fn:substring 函數(shù)

    參數(shù)

    描述

    string

    源字符串。其類(lèi)型必須為 String 類(lèi)型

    beginIndex

    指定起始下標(biāo)(值從 0 開(kāi)始)。其類(lèi)型必須為 int 類(lèi)型

    endIndex

    指定結(jié)束下標(biāo)(值從 0 開(kāi)始)。其類(lèi)型必須為 int 類(lèi)型

    返回結(jié)果

    返回一個(gè) String 類(lèi)型的值

    下面看一個(gè)示例。

    ${fn:substring("ABC","1","2")}<br>

    截取結(jié)果為“ B ”。


    9.7.14? 起始到定位截取字符串函數(shù) fn:substringBefore 函數(shù)

    fn:substringBefore 函數(shù)允許截取源字符從開(kāi)始到某個(gè)字符串。它的參數(shù)和 fn:substringAfter 函數(shù)相同,不同的是 substring 表示的是結(jié)束字符串。下面看一個(gè)示例。

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

    截取的結(jié)果為“ A ”。

    9.7.15? 小寫(xiě)轉(zhuǎn)換函數(shù) fn:toLowerCase 函數(shù)

    fn:toLowerCase 函數(shù)允許將源字符串中的字符全部轉(zhuǎn)換成小寫(xiě)字符。它只有一個(gè)表示源字符串的參數(shù) string ,函數(shù)返回一個(gè) String 類(lèi)型的值。下面看一個(gè)示例。

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

    轉(zhuǎn)換的結(jié)果為“ abcd ”。

    9.7.16 大寫(xiě)轉(zhuǎn)換函數(shù) fn:toUpperCase 函數(shù)

    fn:toUpperCase 函數(shù)允許將源字符串中的字符全部轉(zhuǎn)換成大寫(xiě)字符。它與 fn:toLowerCase 函數(shù)相同,也只有一個(gè) String 參數(shù),并返回一個(gè) String 類(lèi)型的值。下面看一個(gè)示例。

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

    轉(zhuǎn)換的結(jié)果為“ ABCD ”。

    9.7.17 空格刪除函數(shù) fn:trim 函數(shù)

    fn:trim 函數(shù)將刪除源字符串中結(jié)尾部分的“空格”以產(chǎn)生一個(gè)新的字符串。它與 fn:toLowerCase 函數(shù)相同,只有一個(gè) String 參數(shù),并返回一個(gè) String 類(lèi)型的值。下面看一個(gè)示例。

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

    轉(zhuǎn)換的結(jié)果為“ AB CD ”,注意,它將只刪除詞尾的空格而不是全部,因此“ B ”和“ C ”之間仍然留有一個(gè)空格。



    posted on 2007-01-18 15:19 nbt 閱讀(3244) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Servele&JSP和js

    評(píng)論

    # re: JSTL詳解(七) 2007-10-25 13:23 xuelei

    dd  回復(fù)  更多評(píng)論   

    <2007年1月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(3)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    相冊(cè)

    收藏夾

    Java技術(shù)網(wǎng)站

    友情鏈接

    國(guó)內(nèi)一些開(kāi)源網(wǎng)站

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲女子高潮不断爆白浆| 国产啪精品视频网免费| 亚洲午夜精品久久久久久app | 亚洲国产综合专区电影在线| 国产不卡免费视频| 毛片免费全部免费观看| 久久精品人成免费| 你好老叔电影观看免费| 视频免费1区二区三区| 亚洲av无码偷拍在线观看| 亚洲av无码一区二区三区观看| 亚洲AV无码国产丝袜在线观看| 77777亚洲午夜久久多人| 免费国产综合视频在线看| 免费观看美女裸体网站| 永久免费av无码不卡在线观看| 18禁美女裸体免费网站| 久久久久久久99精品免费观看| 一个人免费观看视频在线中文| 免费看一级一级人妻片| 特级毛片全部免费播放| 日韩亚洲翔田千里在线| 亚洲AV第一成肉网| 国产精品亚洲av色欲三区| 亚洲啪AV永久无码精品放毛片| 亚洲男人天堂2022| 亚洲AV日韩综合一区尤物| 亚洲自偷自偷在线成人网站传媒| 亚洲啪啪免费视频| 亚洲一区二区久久| 亚洲小说图区综合在线| 亚洲人成网站18禁止| 亚洲精品无码日韩国产不卡av| 亚洲色www永久网站| 亚洲成a∧人片在线观看无码| 亚洲av无码专区青青草原| 日韩国产欧美亚洲v片| 男女超爽视频免费播放| 色爽黄1000部免费软件下载| 一本到卡二卡三卡免费高| 成人无码a级毛片免费|