JSP中的JSTL標(biāo)簽筆記

JSTL(JavaServer Pages Standard Tag Library肋殴,JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù))是apache對(duì)EL表達(dá)式的一個(gè)拓展庫(kù)洽沟。JSTL支持通用的以故、結(jié)構(gòu)化任務(wù)。內(nèi)部擁有豐富的標(biāo)簽裆操。如條件判斷怒详、循環(huán)炉媒、SQL標(biāo)簽等。JSTL標(biāo)簽大致可以分為5類昆烁,核心標(biāo)簽吊骤、格式化標(biāo)簽SQL 標(biāo)簽静尼、XML 標(biāo)簽白粉、JSTL函數(shù)

參考自菜鳥教程

環(huán)境配置

  • 下載、添加jar包

首先我們需要去官網(wǎng)下載最新版本的DTD文件http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/ 并且將文件中的jstl.jarstandard.jar拷貝到項(xiàng)目的lib中鼠渺。Tomcat的lib也需要拷貝這兩個(gè)jar包鸭巴。

  • 在IDEA配置

    IDEA除了添加jar之外還要在Setting中設(shè)置

    Setting中搜索DTD——>選擇Schemas and DTDs——>點(diǎn)擊右上角加號(hào)添加http://java.sun.com/jsp/jstl/core就行了

核心標(biāo)簽

核心標(biāo)簽是JSTL最常用的標(biāo)簽,我們?cè)趈sp文件頭部引入核心標(biāo)簽庫(kù)

<%@ taglib prefix="c"
           uri="http://java.sun.com/jsp/jstl/core" %>

下面分別介紹下最常用的核心標(biāo)簽

  • <c:out> 用于在JSP中顯示數(shù)據(jù)系冗,就像<%= ... >
  • <c:set> 用于保存數(shù)據(jù)

set標(biāo)簽實(shí)現(xiàn)一個(gè)頁(yè)面訪問數(shù)

<c:set var="totalCount" value="${totalCount+1}" scope="application"/>
<c:set var="count" value="${count+1}" scope="session"> </c:set>
總訪問數(shù):${totalCount}
其中您的訪問數(shù):${count}
  • <c:catch> 用來(lái)處理產(chǎn)生錯(cuò)誤的異常狀況奕扣,并且將錯(cuò)誤信息儲(chǔ)存起來(lái)
  • <c:if> if判斷薪鹦,但是沒有else功能掌敬。如果要使用else可以使用 <c:choose>
  • <c:import> 類似于jsp中<jsp:include>導(dǎo)入資源
  • <c:forEach> forEach循環(huán),支持多種集合

forEach標(biāo)簽實(shí)現(xiàn)100以內(nèi)的偶數(shù)

<c:forEach var="num" begin="2" end="100" step="2">
     <div>${num}</div>
 </c:forEach>
  • <c:forTokens> 根據(jù)指定的分隔符來(lái)分隔內(nèi)容并迭代輸出,類似于forEach標(biāo)簽
  • <c:param> 用來(lái)給包含或重定向的頁(yè)面?zhèn)鬟f參數(shù)
  • <c:redirect> 重定向至一個(gè)新的URL
  • <c:url> 使用可選的查詢參數(shù)來(lái)創(chuàng)造一個(gè)URL

格式化標(biāo)簽

fmt標(biāo)簽是輔助型功能標(biāo)簽池磁,我們?cè)趈sp中引入格式化標(biāo)簽庫(kù)

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>tagl

下面分別介紹下最常用的格式化標(biāo)簽

  • <fmt:requestEncoding> 設(shè)置request的字符編碼
  • <fmt:setLocale> 設(shè)置本地地區(qū)的數(shù)據(jù)格式
  • <fmt:timeZone> 顯示全球時(shí)間
  • <fmt:setTimeZone> 設(shè)置時(shí)區(qū)
  • <fmt:formatNumber> 使用指定的格式或精度格式化數(shù)字
  • <fmt:parseNumber> 解析一個(gè)代表著數(shù)字奔害,貨幣或百分比的字符串
  • <fmt:formatDate> 使用指定的風(fēng)格或模式格式化日期和時(shí)間
  • <fmt:parseDate> 解析一個(gè)代表著日期或時(shí)間的字符串
  • <fmt:message> 顯示資源配置文件信息

SQL標(biāo)簽

JSTL SQL標(biāo)簽庫(kù)提供了與關(guān)系型數(shù)據(jù)庫(kù)(Oracle,MySQL地熄,SQL Server等等)進(jìn)行交互的標(biāo)簽华临。使用JSTL操作數(shù)據(jù)庫(kù)要比使用JSP中使用Scriptlet操作數(shù)據(jù)庫(kù)簡(jiǎn)單,引用SQL標(biāo)簽庫(kù)的語(yǔ)法如下:

<%@ taglib prefix="sql"
           uri="http://java.sun.com/jsp/jstl/sql" %>

下面分別介紹下最常用的SQL標(biāo)簽

  • <sql:setDataSource> 指定數(shù)據(jù)源端考,連接數(shù)據(jù)庫(kù)
  • <sql:query> 運(yùn)行SQL查詢語(yǔ)句
  • <sql:update> 運(yùn)行SQL更新語(yǔ)句
  • <sql:param> 將SQL語(yǔ)句中的參數(shù)設(shè)為指定值
  • <sql:dateParam> 將SQL語(yǔ)句中的日期參數(shù)設(shè)為指定的java.util.Date 對(duì)象值
  • <sql:transaction> 在共享數(shù)據(jù)庫(kù)連接中提供嵌套的數(shù)據(jù)庫(kù)行為元素雅潭,將所有語(yǔ)句以一個(gè)事務(wù)的形式來(lái)運(yùn)行

XML標(biāo)簽

JSTL XML標(biāo)簽是創(chuàng)建操作XML文檔的一個(gè)標(biāo)簽庫(kù)。引用語(yǔ)法如下:

<%@ taglib prefix="x"
           uri="http://java.sun.com/jsp/jstl/xml" %>

常用的XML標(biāo)簽

  • <x:out> 與<%= ... >,類似却特,不過(guò)只用于XPath表達(dá)式
  • <x:parse> 解析 XML 數(shù)據(jù)
  • <x:set> 設(shè)置XPath表達(dá)式
  • <x:if> 判斷XPath表達(dá)式扶供,若為真,則執(zhí)行本體中的內(nèi)容裂明,否則跳過(guò)本體
  • <x:forEach> 迭代XML文檔中的節(jié)點(diǎn)
  • <x:choose> <x:when>和<x:otherwise>的父標(biāo)簽
  • <x:when> <x:choose> 的子標(biāo)簽椿浓,用來(lái)進(jìn)行條件判斷
  • <x:otherwise> <x:choose>的子標(biāo)簽,當(dāng)<x:when>判斷為false時(shí)被執(zhí)行
  • <x:transform> 將XSL轉(zhuǎn)換應(yīng)用在XML文檔中
  • <x:param><x:transform> 共同使用闽晦,用于設(shè)置XSL樣式表

JSTL函數(shù)

JSTL 函數(shù)主要是一些操作字符串的標(biāo)簽扳碍,引用方法如下:

<%@ taglib prefix="fn"
           uri="http://java.sun.com/jsp/jstl/functions" %>

常用的函數(shù)標(biāo)簽:

  • fn:contains() 測(cè)試輸入的字符串是否包含指定的子串
  • fn:containsIgnoreCase() 測(cè)試輸入的字符串是否包含指定的子串,大小寫不敏感
  • fn:endsWith() 測(cè)試輸入的字符串是否以指定的后綴結(jié)尾
  • fn:escapeXml() 跳過(guò)可以作為XML標(biāo)記的字符
  • fn:indexOf() 返回指定字符串在輸入字符串中出現(xiàn)的位置
  • fn:join() 將數(shù)組中的元素合成一個(gè)字符串然后輸出
  • fn:length() 返回字符串長(zhǎng)度
  • fn:replace() 將輸入字符串中指定的位置替換為指定的字符串然后返回
  • fn:split() 將字符串用指定的分隔符分隔然后組成一個(gè)子字符串?dāng)?shù)組并返回
  • fn:startsWith() 測(cè)試輸入字符串是否以指定的前綴開始
  • fn:substring() 返回字符串的子集
  • fn:substringAfter() 返回字符串在指定子串之后的子集
  • fn:substringBefore() 返回字符串在指定子串之前的子集
  • fn:toLowerCase() 將字符串中的字符轉(zhuǎn)為小寫
  • fn:toUpperCase() 將字符串中的字符轉(zhuǎn)為大寫
  • fn:trim() 移除首位的空白符
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末仙蛉,一起剝皮案震驚了整個(gè)濱河市笋敞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌荠瘪,老刑警劉巖液样,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件振亮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡鞭莽,警方通過(guò)查閱死者的電腦和手機(jī)坊秸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)澎怒,“玉大人褒搔,你說(shuō)我怎么就攤上這事∨缑妫” “怎么了星瘾?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)惧辈。 經(jīng)常有香客問我琳状,道長(zhǎng),這世上最難降的妖魔是什么盒齿? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任念逞,我火速辦了婚禮,結(jié)果婚禮上边翁,老公的妹妹穿的比我還像新娘翎承。我一直安慰自己,他們只是感情好符匾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布叨咖。 她就那樣靜靜地躺著,像睡著了一般啊胶。 火紅的嫁衣襯著肌膚如雪甸各。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天焰坪,我揣著相機(jī)與錄音趣倾,去河邊找鬼。 笑死琳彩,一個(gè)胖子當(dāng)著我的面吹牛誊酌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播露乏,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼碧浊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了瘟仿?” 一聲冷哼從身側(cè)響起箱锐,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎劳较,沒想到半個(gè)月后驹止,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浩聋,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年臊恋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了衣洁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抖仅,死狀恐怖坊夫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情撤卢,我是刑警寧澤环凿,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站放吩,受9級(jí)特大地震影響智听,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜渡紫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一到推、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧腻惠,春花似錦环肘、人聲如沸欲虚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)复哆。三九已至欣喧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間梯找,已是汗流浹背唆阿。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锈锤,地道東北人驯鳖。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像久免,于是被迫代替她去往敵國(guó)和親浅辙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354