2018-10-06

JSTL概念

JSTL(JavaServer Pages Standard Tag Library,JSP標(biāo)準(zhǔn)標(biāo)簽庫)是一個不斷完善的開放源代碼的JSP標(biāo)簽庫,是由apache的jakarta小組來維護的。JSTL只能運行在支持JSP1.2和Servlet2.3規(guī)范的容器上,如tomcat 4.x。在JSP 2.0中也是作為標(biāo)準(zhǔn)支持的。

JSTL 1.0 發(fā)布于 2002 年 6 月,由四個定制標(biāo)記庫(core、format、xml 和 sql)和一對通用標(biāo)記庫驗證器(ScriptFreeTLV 和 PermittedTaglibsTLV)組成。core 標(biāo)記庫提供了定制操作,通過限制了作用域的變量管理數(shù)據(jù),以及執(zhí)行頁面內(nèi)容的迭代和條件操作。它還提供了用來生成和操作 URL 的標(biāo)記。顧名思義,format 標(biāo)記庫定義了用來格式化數(shù)據(jù)(尤其是數(shù)字和日期)的操作。它還支持使用本地化資源束進行 JSP 頁面的國際化。xml 庫包含一些標(biāo)記,這些標(biāo)記用來操作通過 XML 表示的數(shù)據(jù),而 sql 庫定義了用來查詢關(guān)系數(shù)據(jù)庫的操作。

如果要使用JSTL,則必須將jstl.jar和 standard.jar文件放到classpath中,如果你還需要使用XML processing及Database access (SQL)標(biāo)簽,還要將相關(guān)JAR文件放到classpath中,這些JAR文件全部存在于下載回來的zip文件中。

檢索地址:https://baike.baidu.com/item/JSTL/1330422?fr=aladdin

JSTL目的

JSTL標(biāo)簽庫的使用是為類彌補html表的不足,規(guī)范自定義標(biāo)簽的使用而誕生的。在告別modle1模式開發(fā)應(yīng)用程序后,人們開始注重軟件的分層設(shè)計,不希望在jsp頁面中出現(xiàn)java邏輯代碼,同時也由于自定義標(biāo)簽的開發(fā)難度較大和不利于技術(shù)標(biāo)準(zhǔn)化產(chǎn)生了自定義標(biāo)簽庫。JSTL標(biāo)簽庫可分為5類:

標(biāo)簽庫 ? ???????? 標(biāo)簽庫的URI???????????????????????????????????????????? ? ? ??? 前綴

Core ? ? ? ? ? ? ?? http://java.sun.com/jsp/jstl/core??????? ? ?? ????? c

I18N??????????????? http://java.sun.com/jsp/jstl/fmt??????? ? ? ? ? ?? fmt

SQL???????????????? http://java.sun.com/jsp/jstl/sql??????? ? ? ? ? ?? ? sql

XML ? ? ? ? ? ? ?? http://java.sun.com/jsp/jstl/xml ? ? ? ? ? ? ? ? ?? x

Functions ? ? ? http://java.sun.com/jsp/jstl/functions ? ? ? ? fn

引用格式

1、導(dǎo)入standard.jar和jstl.jar。

2、在JSP頁面上引入 JSTL 的引用。如

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

JSTL標(biāo)簽庫的使用

1、核心標(biāo)簽庫

JSTL的核心標(biāo)簽庫標(biāo)簽共13個,從功能上可以分為4類:表達式控制標(biāo)簽、流程控制標(biāo)簽、循環(huán)標(biāo)簽、URL操作標(biāo)簽。使用這些標(biāo)簽?zāi)軌蛲瓿蒍SP頁面的基本功能,減少編碼工作。如:

表達式控制標(biāo)簽:out標(biāo)簽、set標(biāo)簽、remove標(biāo)簽、catch標(biāo)簽。

流程控制標(biāo)簽:if標(biāo)簽、choose標(biāo)簽、when標(biāo)簽、otherwise標(biāo)簽。

循環(huán)標(biāo)簽:forEach標(biāo)簽、forTokens標(biāo)簽。

URL操作標(biāo)簽:import標(biāo)簽、url標(biāo)簽、redirect標(biāo)簽。


常用標(biāo)簽的詳解:(常用的為if標(biāo)簽和forEach標(biāo)簽)

(1)、<c:out>標(biāo)簽:用來顯示數(shù)據(jù)對象(字符串、表達式)的內(nèi)容或結(jié)果。相當(dāng)于?<% out.println(“字符串”)%> 或?<%=表達式%>。

(2)、<c:if>標(biāo)簽:同程序中的if作用相同,用來實現(xiàn)條件控制

【語法1】:Java代碼???? <c:if?test=”條件1”?var=”name”?[scope=”page|request|session|application”]>??

【語法2】:Java代碼???? <c:if?test=”條件2”?var=”name”?[scope=”page|request|session|application”]>結(jié)果2</c:if>?

????????????? 【參數(shù)說明】:

??????????????????????????????? ?? I、test屬性用于存放判斷的條件,一般使用EL表達式來編寫。

?????????????????????????????? ?? II、var指定名稱用來存放判斷的結(jié)果類型為true或false。

????????????????????????????????? III、scope用來存放var屬性存放的范圍。

(3)、<c:forEach>標(biāo)簽:該標(biāo)簽根據(jù)循環(huán)條件遍歷集合(Collection)中的元素。

?<c:forEach ? var=”name” ?? items=”Collection” ? varStatus=”StatusName” ? begin=”begin” ? end=”end”?? step=”step”>

所有內(nèi)容?????

</c:forEach>??

????????????? 【參數(shù)說明】:

??????????????????????????????? ??I、var設(shè)定變量名用于存儲從集合中取出元素。

??????????????????????? ? ??????? II、items指定要遍歷的集合。

????????????????????? ? ?????? ? III、varStatus設(shè)定變量名,該變量用于存放集合中元素的信息。

??????????????????????? ? ?? ? ? IV、begin、end用于指定遍歷的起始位置和終止位置(可選)。

?????????????????????????????? ? V、step指定循環(huán)的步長。

(4)、<c:import>標(biāo)簽:該標(biāo)簽可以把其他靜態(tài)或動態(tài)文件包含到本JSP頁面。同<jsp:include>的區(qū)別為:只能包含同一個web應(yīng)用中的文件。而<c:import>可以包含其他web應(yīng)用中的文件,甚至是網(wǎng)絡(luò)上的資源。

<c:import?url=”url”?[context=”context”][?value=”value”][scope=”page|request|session|application”]?[charEncoding=”encoding”]>??

?<c:import?url=”url”?varReader=”name”?[context=”context”][charEncoding=”encoding”]>??

【參數(shù)說明】:

?I、URL為資源的路徑,當(dāng)應(yīng)用的資源不存在時系統(tǒng)會拋出異常,因此該語句應(yīng)該放在語句塊中捕獲。絕對路徑和相對路徑

?II、context屬性用于在訪問其他web應(yīng)用的文件時,指定根目錄。例如,訪問root下的index.jsp的實現(xiàn)代碼為:

Java代碼??? <c:import?url=”/index.jsp”?context=”/root”>?? 等同于webapps/root/index.jsp

?III、var 屬性表示為資源起的別名。

?IV、scope 屬性標(biāo)識該資源訪問的范圍。

?V、charEncoding 屬性標(biāo)識該資源的編碼方式。

VI、varReader 這個參數(shù)的類型是Reader,用于讀取資源。

詳細(xì)檢索地址:http://leon906998248.iteye.com/blog/1502569

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容