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>