Jsp(四)

JSP 標(biāo)準(zhǔn)標(biāo)簽庫(kù)(JSTL)

JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)(JSTL)是一個(gè)JSP標(biāo)簽集合碎节,它封裝了JSP應(yīng)用的通用核心功能。
JSTL支持通用的粉怕、結(jié)構(gòu)化的任務(wù)健民,比如迭代,條件判斷贫贝,XML文檔操作秉犹,國(guó)際化標(biāo)簽,SQL標(biāo)簽稚晚。 除了這些崇堵,它還提供了一個(gè)框架來(lái)使用集成JSTL的自定義標(biāo)簽。
根據(jù)JSTL標(biāo)簽所提供的功能客燕,可以將其分為5個(gè)類(lèi)別鸳劳。
<li>核心標(biāo)簽
<li>格式化標(biāo)簽
<li>SQL 標(biāo)簽
<li>XML 標(biāo)簽
<li>JSTL 函數(shù)


JSTL 庫(kù)安裝

下載jakarta-taglibs-standard-1.1.2.zip 包并解壓,將jakarta-taglibs-standard-1.1.2/lib/下的兩個(gè)jar文件:standard.jar和jstl.jar文件拷貝到/WEB-INF/lib/下也搓。
接下來(lái)我們?cè)?web.xml 文件中添加以下配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>webTest</display-name>
  <jsp-config>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
    <taglib-location>/WEB-INF/fmt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
    <taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
    <taglib-location>/WEB-INF/c-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
    <taglib-location>/WEB-INF/sql.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
    <taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
    <taglib-location>/WEB-INF/x.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
    <taglib-location>/WEB-INF/x-rt.tld</taglib-location>
    </taglib>
    </jsp-config>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

<jsp-config>標(biāo)簽主要用于設(shè)定JSP頁(yè)面的相關(guān)配置赏廓。
使用任何庫(kù)涵紊,你必須在每個(gè)JSP文件中的頭部包含<taglib>標(biāo)簽。


核心標(biāo)簽

核心標(biāo)簽是最常用的JSTL標(biāo)簽幔摸。引用核心標(biāo)簽庫(kù)的語(yǔ)法如下:

<%@ taglib prefix="c" 
           uri="http://java.sun.com/jsp/jstl/core" %>
標(biāo)簽 描述
<c:out> 用于在JSP中顯示數(shù)據(jù)摸柄,就像<%= ... >
<c:set> 用于保存數(shù)據(jù)
<c:remove> 用于刪除數(shù)據(jù)
<c:catch> 用來(lái)處理產(chǎn)生錯(cuò)誤的異常狀況,并且將錯(cuò)誤信息儲(chǔ)存起來(lái)
<c:if> 與我們?cè)谝话愠绦蛑杏玫膇f一樣
<c:choose> 本身只當(dāng)做<c:when>和<c:otherwise>的父標(biāo)簽
<c:when> <c:choose>的子標(biāo)簽既忆,用來(lái)判斷條件是否成立
<c:otherwise> <c:choose>的子標(biāo)簽驱负,接在<c:when>標(biāo)簽后,當(dāng)<<c:when>>標(biāo)簽判斷為false時(shí)被執(zhí)行
<c:import> 檢索一個(gè)絕對(duì)或相對(duì) URL患雇,然后將其內(nèi)容暴露給頁(yè)面
<c:forEach> 基礎(chǔ)迭代標(biāo)簽电媳,接受多種集合類(lèi)型
<c:forTokens> 根據(jù)指定的分隔符來(lái)分隔內(nèi)容并迭代輸出
<c:param> 用來(lái)給包含或重定向的頁(yè)面?zhèn)鬟f參數(shù)
<c:redirect> 重定向至一個(gè)新的URL.
<c:url> 使用可選的查詢(xún)參數(shù)來(lái)創(chuàng)造一個(gè)URL

格式化標(biāo)簽

JSTL格式化標(biāo)簽用來(lái)格式化并輸出文本、日期庆亡、時(shí)間匾乓、數(shù)字。引用格式化標(biāo)簽庫(kù)的語(yǔ)法如下:

<%@ taglib prefix="fmt" 
           uri="http://java.sun.com/jsp/jstl/fmt" %>
標(biāo)簽 描述
<fmt:formatNumber> 使用指定的格式或精度格式化數(shù)字
<fmt:parseNumber> 解析一個(gè)代表著數(shù)字又谋,貨幣或百分比的字符串
<fmt:formatDate> 使用指定的風(fēng)格或模式格式化日期和時(shí)間
<fmt:parseDate> 解析一個(gè)代表著日期或時(shí)間的字符串
<fmt:formatBundle> 綁定資源
<fmt:setLocale> 指定地區(qū)
<fmt:setBundle> 綁定資源
<fmt:timeZone> 指定時(shí)區(qū)
<fmt:message> 顯示資源配置文件信息
<fmt:setTimeZone> 指定時(shí)區(qū)
<fmt:requestEncoding> 設(shè)置request的字符編碼

SQL標(biāo)簽

JSTL SQL標(biāo)簽庫(kù)提供了與關(guān)系型數(shù)據(jù)庫(kù)(Oracle拼缝,MySQL,SQL Server等等)進(jìn)行交互的標(biāo)簽彰亥。引用SQL標(biāo)簽庫(kù)的語(yǔ)法如下:

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

|標(biāo)簽|描述|
|---|---|
|<sql:setDataSource>|指定數(shù)據(jù)源|
|<sql:query>|運(yùn)行SQL查詢(xún)語(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)行|

sql操作數(shù)據(jù)庫(kù)的例子:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<html>
<head>
<title>SELECT 操作</title>
</head>
<body>
<!--
JDBC 驅(qū)動(dòng)名及數(shù)據(jù)庫(kù) URL 
數(shù)據(jù)庫(kù)的用戶(hù)名與密碼忘晤,需要根據(jù)自己的設(shè)置
useUnicode=true&characterEncoding=utf-8 防止中文亂碼
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8"
     user="root"  password="123456"/>
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<h1>JSP 數(shù)據(jù)庫(kù)實(shí)例 </h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>站點(diǎn)名</th>
   <th>站點(diǎn)地址</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.id}"/></td>
   <td><c:out value="${row.name}"/></td>
   <td><c:out value="${row.url}"/></td>
</tr>
</c:forEach>
</table>
</body>
</html>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末咕痛,一起剝皮案震驚了整個(gè)濱河市葡秒,隨后出現(xiàn)的幾起案子垛耳,更是在濱河造成了極大的恐慌任连,老刑警劉巖朵你,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俐填,死亡現(xiàn)場(chǎng)離奇詭異伶氢,居然都是意外死亡澈蟆,警方通過(guò)查閱死者的電腦和手機(jī)墨辛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)趴俘,“玉大人睹簇,你說(shuō)我怎么就攤上這事×壬粒” “怎么了太惠?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)疲憋。 經(jīng)常有香客問(wèn)我凿渊,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任嗽元,我火速辦了婚禮敛纲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘剂癌。我一直安慰自己淤翔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布佩谷。 她就那樣靜靜地躺著旁壮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谐檀。 梳的紋絲不亂的頭發(fā)上抡谐,一...
    開(kāi)封第一講書(shū)人閱讀 52,184評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音桐猬,去河邊找鬼麦撵。 笑死,一個(gè)胖子當(dāng)著我的面吹牛溃肪,可吹牛的內(nèi)容都是我干的免胃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼惫撰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼羔沙!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起厨钻,我...
    開(kāi)封第一講書(shū)人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扼雏,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后夯膀,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體诗充,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年棍郎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了其障。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涂佃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜈敢,到底是詐尸還是另有隱情辜荠,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布抓狭,位于F島的核電站伯病,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜午笛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一惭蟋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧药磺,春花似錦告组、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至围辙,卻和暖如春我碟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背姚建。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工矫俺, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掸冤。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓恳守,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親贩虾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子催烘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • JSP 基本結(jié)構(gòu)JSP 頁(yè)面組成:模板文本(HTML,XML,純文本),JSP 元素缎罢;JSP 元素:腳本元素伊群,指令...
    jslancer閱讀 849評(píng)論 0 11
  • 1什么是JSTLJSTL是apache對(duì)EL表達(dá)式的擴(kuò)展(也就是說(shuō)JSTL依賴(lài)EL),JSTL是標(biāo)簽語(yǔ)言策精!JSTL...
    TY_閱讀 378評(píng)論 0 1
  • 表達(dá)式語(yǔ)言(Expression Language 簡(jiǎn)稱(chēng)EL) EL最初是定義在JSTL1.0規(guī)范中舰始,在JSP2....
    清楓_小天閱讀 829評(píng)論 0 4
  • 1、JSP基本概念 1.1 JSP是什么 JSP是Java Server Pages(java服務(wù)器頁(yè)面)的縮寫(xiě)咽袜。...
    maxwellyue閱讀 1,032評(píng)論 0 6
  • EL表達(dá)式 EL作用 jsp的核心語(yǔ)法: jsp表達(dá)式 <%=%>和 jsp腳本<% %> 以后開(kāi)發(fā)jsp的原則...
    奮斗的老王閱讀 2,449評(píng)論 1 51