javascript
JSTL标签之核心标签
JSTL(JSP Standard Tag Library ,JSP標準標簽庫)是一個實現 Web應用程序中常見的通用功能的定制標記庫集,這些功能包括迭代和條件判斷、數據管理格式化、XML 操作以及數據庫訪問。
在JSP頁面引入核心標簽庫的代碼為:<%@ taglib prefix="c" uri="http://Java.sun.com/jsp/jstl/core" %>
下面簡單介紹一下這些標簽的用法:
?
1,表達式控制標簽
<c:out>
用于在JSP中顯示數據。
語法1:沒有本體(body)內容
<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] />
語法2:有本體內容
<c:out value="value" [escapeXml="{true|false}"]>
default value
</c:out>
?
<c:set>
用于保存數據。
?
語法1
將value的值儲存至范圍為scope的varName變量之中:
<c:set value="value" var="varName" [scope="{ page|request|session|application }"]/>
語法2
將本體內容的數據儲存至范圍為scope的varName變量之中:
<c:set var="varName" [scope="{ page|request|session|application }"]>
… 本體內容
</c:set>
語法3
將value的值儲存至target對象的屬性中:
c:set value="value" target="target" property="propertyName" />
語法4
將本體內容的數據儲存至target對象的屬性中:
<c:set target="target" property="propertyName">
… 本體內容
</c:set>
?
<c:remove>
用于刪除數據。
?
語法:
<c:remove var="varName" [scope="{ page|request|session|application }"] />
<c:chtch>
?
2,流程控制標簽
<c:if>
用途跟其他語言中的if類似。
?
語法1
:沒有本體內容(body)
<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
varName值為testCondition執行結果(布爾值)。
語法2
:有本體內容
<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
本體內容</c:if>
如果表達式的結果為true,則執行本體內容,false則相反
?
<c:choose>、<c:when>、<c:otherwise>
這3個標簽通常情況下是一起使用的,<c:choose>標簽作為<c:when>和<c:otherwise>標簽的父標簽來使用。
語法1:
<c:choose>
? ? ? ? ?<c:when>
? ? ? ? ?表達式
? ? ? ? ?<c:otherwise>
? ? ? ? ?表達式
? ? ? ? ?<c:otherwise>
? ? ? ? ?表達式
</c:choose>
語法2:
<c:when text=”條件”>
表達式
</c:when>
語法3:
<c:otherwise>
表達式
</c:otherwise>
?
補充:
(1)語法1為3個標簽的嵌套使用方式,<c:choose>標簽只能和<c:when>標簽共同使用。
(2)語法2為<c:when>標簽的使用方式,該標簽都條件進行判斷,一般情況下和<c:choose>共同使用。
(3)<c:otherwise>不含有參數,只能跟<c:when>共同使用,并且在嵌套中只允許出現一次。
?
3,循環標簽
<c:forEach>
跟其他語言中的forEach類似。
?
語法:迭代一集合對象之所有成員
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"]
[begin="begin"] [end="end"] [step="step"]>
</c:forEach>
?
<c:forTokens>
用于瀏覽字符串,并根據指定的字符將字符串截取。
?
語法:
<c:forTokens items=”strigOfTokens” delims=””delimiters [var=”name” begin=”begin” end=”end” step=”len” varStatus=”statusName”] >
?
4,URL操作標簽
<c:import>
該標簽可以把其他靜態或動態文件包含到本JSP頁面。同<jsp:include>的區別為:只能包含同一個web應用中的文件。而<c:import>可以包含其他web應用中的文件,甚至是網絡上的資源。
?
語法1:
<c:import url=”url” [context=”context”][ value=”value”][scope=”page|request|session|application”] [charEncoding=”encoding”]>
語法2:
<c:import url=”url” varReader=”name” [context=”context”][charEncoding=”encoding”]><c:redirect>
?
<c:url>
該標簽用于動態生成一個String類型的URL,可以同<c:redirect>標簽共同使用,也可以使用html的<a>標簽實現超鏈接。
?
語法1:指定一個url不做修改,可以選擇把該url存儲在JSP不同的范圍中。
<c:url value=”value” [var=”name”][scope=”page|request|session|application”][context=”context”]/>
語法2:給url加上指定參數及參數值,可以選擇以name存儲該url。
<c:url value=”value” [var=”name”][scope=”page|request|session|application”][context=”context”]>
<c:param name=”參數名” value=”值”>
</c:url>
?
上面說了那么多,那么為什么要用JSTL呢?它有什么優點呢?其優點如下:
1、 簡化了JSP和WEB應用程序的開發。
2、 便于維護。
3、 減少甚至避免了JSP中的scriptlet代碼。
4、 易于前臺人員掌握,使前后臺分工明確,提高團隊開發效率。
?
有人說JSTL已經過時了,其實每種語言都有它的優點,沒有啥過時不過時的,就看適合不適合了。具體選擇什么就看公司要求和項目的實際情況了。
?
轉載于:https://www.cnblogs.com/kuangwong/p/6393533.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的JSTL标签之核心标签的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python学习 01 变量
- 下一篇: OpenStack Network --