JSP 標準標簽庫(JSP Standard Tag Library)是一個 JSP 標簽集合楔敌,它封裝了 JSP 應用的通用核心功能啤挎。
它的出現(xiàn),是因為人們開始注重軟件的分層設(shè)計
梁丘,不希望在 JSP 頁面中出現(xiàn) JAVA 邏輯代碼
侵浸。同時也由于自定義標簽
的開發(fā)難度較大、不利于技術(shù)的標準化氛谜,因此產(chǎn)生了 JSTL。
JSTL 和 EL 的結(jié)合
区端,基本可以讓頁面再無 <% %>
代碼值漫。
JSTL 標準標簽庫可分為五類:[其實,一般就用三種]
核心標簽庫
共 14 個,從功能上可以分為 4 類织盼。引用方法:
個人喜歡引入方式:
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
可以測試上節(jié)的JSP標簽方式
還有一種引入方式為:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
表達式控制
這個是我們最經(jīng)常使用的
標簽 | 描述 |
---|---|
<c:out > | 用于顯示數(shù)據(jù)杨何,就像 <%= %> ,區(qū)別在于 <c:out> 標簽可以直接通過 . 操作符來訪問屬性 |
<c:set > | 用于保存數(shù)據(jù) |
<c:remove> | 用于刪除數(shù)據(jù) |
<c:catch > | 用來處理產(chǎn)生錯誤的異常狀況沥邻,并且將錯誤信息儲存起來 |
流程控制
標簽 | 描述 |
---|---|
<c:if > | 與我們在一般程序中用的 if 一樣,但是沒有else操作,變相實現(xiàn) |
<c:choose > | 本身只當做 <c:when> 和 <c:otherwise> 的父標簽,相當于 switch 標簽 |
<c:when> |
<c:choose> 的子標簽危虱,用來判斷條件是否成立 |
<c:otherwise> |
<c:choose> 的子標簽,接在 <c:when> 標簽后唐全,當 <c:when> 標簽判斷為 false 時被執(zhí)行 |
循環(huán)[重點]
標簽 | 描述 |
---|---|
<c:forEach> | 基礎(chǔ)迭代標簽埃跷,接受多種集合類型,默默的回憶,有哪些重點?
|
<c:forTokens> | 根據(jù)指定的分隔符來分隔內(nèi)容并迭代輸出,怎么說,真的很實用的功能!
|
URL操作
標簽 | 描述 |
---|---|
<c:import> | 檢索一個絕對或相對 URL,然后將其內(nèi)容暴露給頁面 ,可以替換 JSP的動態(tài)包含
|
<c:redirect> | 使用可選的查詢參數(shù)來創(chuàng)造一個 URL |
<c:url > | 重定向至一個新的 URL |
<c:param > | 用來給包含或重定向的頁面?zhèn)鬟f參數(shù) |
<c:import>
想一想如果配合使用JSP的過濾器,那會是什么結(jié)果?請做一下實驗!
格式化標簽庫
用于格式化并輸出文本邮利、日期弥雹、時間、數(shù)字延届,這里只介紹最最最常用的兩個標簽,引用方法:
個人喜歡引入方式:
<%@taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt" %>
可以測試上節(jié)的JSP標簽方式
還有一種引入方式為:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
格式化數(shù)字
標簽 | 描述 |
---|---|
<fmt:formatNumber> | 使用指定的格式或精度格式化數(shù)字 |
涉及到錢的時候,不要使用float/double,還有使用銀行家四舍五入方式
格式化日期
標簽 | 描述 |
---|---|
<fmt:formatDate> | 使用指定的風格或模式格式化日期和時間 |
yyyy mm MM dd H h ss 都是含義,默背一下!
函數(shù)標簽庫
大部分都是通用的字符串處理函數(shù)剪勿,用于配合 EL 表達式使用。引用方法:
個人喜歡引入方式:
<%@taglib prefix="fn" uri="http://java.sun.com/jstl/functions_rt" %>
可以測試上節(jié)的JSP標簽方式
還有一種引入方式為:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
標簽 | 描述 |
---|---|
<fmt:formatNumber> | 使用指定的格式或精度格式化數(shù)字 |
涉及到錢的時候,不要使用float/double,還有使用銀行家四舍五入方式
格式化日期
標簽 | 描述 |
---|---|
fn:contains() | 測試輸入的字符串是否包含指定的子串,如: ${fn:contains("ABC", "a")}
|
fn:containsIgnoreCase() | 測試輸入的字符串是否包含指定的子串方庭,大小寫不敏感,如: ${fn:containsIgnoreCase("ABC", "a")}
|
fn:endsWith() | 測試輸入的字符串是否以指定的后綴結(jié)尾,如:${fn:endsWith("ABC", "bc")}
|
fn:startsWith() | 測試輸入的字符串是否以指定的前綴開始,如:${fn:startsWith("ABC", "ab")}
|
fn:escapeXml() | 用于將所有特殊字符轉(zhuǎn)化為字符實體碼厕吉。它只包含一個 string 參數(shù),返回一個 String 類型的值 |
fn:indexOf() | 用于取得子字符串與源字符串匹配的開始位置械念,若子字符串與源字符串中的內(nèi)容沒有匹配成功將返回“ -1 ”头朱。它包括 string 和 substring 兩個參數(shù),返回結(jié)果為 int 類型.如:${fn:indexOf("ABCD","aBC")}
|
fn:join() | 將數(shù)組中的元素合成一個字符串然后輸出 |
fn:length() | 返回字符串長度 |
fn:replace() | 將輸入字符串中指定的位置替換為指定的字符串然后返回 |
fn:split() | 將字符串用指定的分隔符分隔然后組成一個子字符串數(shù)組并返回 |
fn:substring() | 返回字符串的子集,如:${fn:substring("ABC","1","2")}
|
fn:substringAfter() | 返回字符串在指定子串之后的子集,如:${fn:substringAfter("ABCD","BC")}
|
fn:substringBefore() | 返回字符串在指定子串之前的子集,如:${fn:substringBefore("ABC","1","2")}
|
fn:toLowerCase() | 將字符串中的字符轉(zhuǎn)為小寫 |
fn:toUpperCase() | 將字符串中的字符轉(zhuǎn)為大寫 |
fn:trim() | 移除首位的空白符 |