自訂JSP標籤是用來替代JSP中的Java程式片段的有效途徑。大多數web應用的JSP檔案常常要實現一些通用的功能。為了提高web應用的開發效率,SUN公司制定了一組標準標籤庫的規範,這組標準標籤庫稱為JSTL(JSP Standard Tag Library)。
JSTL標籤庫實際上包含5個不同的標籤庫。JSTL1.1規範為這些標籤庫的URI和首碼做了約定。
JSTL標籤庫的種類
| 標籤庫名 |
首碼 |
URI |
描述 |
| Core |
c |
http://java.sun.com/jsp/jstl/core |
核心標籤庫,包含一般用途的標籤、條件標籤、迭代標籤和URL相關的標籤 |
| I18N |
fmt |
http://java.sun.com/jsp/jstl/fmt |
包含編寫國際化web應用的標籤,以及對日期、時間和數字格式化的標籤 |
| Sql |
sql
|
http://java.sun.com/jsp/jstl/sql |
包含訪問關聯式資料庫的標籤 |
| Xml |
x |
http://java.sun.com/jsp/jstl/xml |
包含對XML文檔進行操作的標籤 |
| Functions |
fn |
http://java.sun.com/jsp/jstl/functions |
包含了一組通用的EL函數,在EL運算式中可以使用這些EL函數 |
使用JSTL需要兩個jar包:
jstl.jar:包含在JSTL規範中定義的介面和類的class檔案。
standard.jar:包含Apache開源軟體組織用於實現JSTL的class檔案,並且在其META-INF目錄下,包含了上表列出的5個標籤庫的TLD檔案。各個標籤庫的TLD檔案是對庫中所有標籤的描述,包括標籤名,標籤的實作類別等。
JSTL核心標籤庫:
Core標籤庫是在編寫JSP檔案時最常用的標籤庫,它包括以下標籤:
| 標籤 |
描述 |
| <c:out> |
用於把一個運算式的結果列印到網頁上 |
| <c:set> |
用於設定命名變數的值。如果命名變數為JavaBean,還可以設定JavaBean屬性的值;如果命名變數為Map類型,還可以設定與其中的key對應的值 |
| <c:remove> |
用於刪除一個命名變數 |
| <c:catch> |
用於捕獲異常,把異常對象放在指定的命名變數中 |
| <c:if> |
用於實現Java中的if語句功能 |
| <c:choose> <c:when> <c:otherwise> |
用於實現Java中的if-else語句功能 |
| <c:forEach> |
用於遍曆集合中的對象,並且能重複執列標籤主體 |
| <c:forTokens> |
用於遍曆字串中用特定分隔字元分隔的子字串,並且能重複執列標籤主體 |
| <c:import> |
用於包含其他web資源,類似<jsp:include>指令 |
| <c:url> |
用於按照特定的重寫規則重新構造URL |
| <c:redirect> |
用於重新導向 |