JSTL标签库学习笔记
生活随笔
收集整理的這篇文章主要介紹了
JSTL标签库学习笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JSTL概述
apache的東西,依賴于EL
使用jstl需要導入jstl.jar包
標簽庫
- core 核心標簽庫
- fmt 格式化標簽庫
- sql 數據庫標簽庫,過時
- xml xml標簽庫,過時
JSTL標簽庫
四大標簽庫
- core 核心庫
- fmt 格式化標簽庫
- sql 數據庫標簽庫,過時
- xml xml標簽庫,過時
導入標簽庫
使用taglib命令
除了jsp的動作標簽外,使用其他的第三方的標簽庫都需要導包
在jsp頁面內導標簽庫
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
prefix 指定標簽的前綴,這個前綴可以隨便給值,但是大家都會在使用core標簽是指定前綴為 c
uri 指定 標簽庫的uri ,他不一定是真實存在的網址
core標簽庫的常用標簽
core –> c標簽
out和set
remove
url
if
choose
forEach
out
* <c:out value="aaa"/>
* 輸出字符串aaa
* <c:out value="${aaa}"/>
* 輸出域屬性aaa,其中與${aaa}相同
* <c:out value="${aaa}" default="xxx"/>
* 如果${aaa}不存在,那么輸出xxx字符串如果${aaa}中包含特殊字符,那么轉義它。這可以防止javascript攻擊,添加escapeXml 之后就不能防止script攻擊例如:<%request.setAttribute("xxx", "<script>alert('12345');</script>");%><c:out value="${xxx }" escapeXml="false"/>
set
創建域的屬性
<c:set var="a" value="hello" />
* 在pageContext中添加name為a,value為hello的數據
<c:set var="b" value="hello" scope="session" />
* 在session中添加name為b,value為hello的數據,變量值可以為el表達式
* scope:域,默認為page,可選值為,page,request,session,application
remove
<c:remove var="a" />
* 刪除所有域中的name為a的數據
* var: 變量名
* scope: 如果不給出scope,表示刪除所有域中該名稱變量,如果指定了,就只刪除該域的變量
url
* value: 指定一個路徑,他會在路徑前面自動添加項目名。* <c:url value="/index.jsp" /> 他會輸出/Test/index.jsp
*子標簽:<c:param>,用來給url后面添加參數,例如:<c:url value="/index.jsp" ><c:param name="username" value="zhangsan" /><!--可以對參數進行url編碼!!--></c:url>//結果為:/Test/index.jsp?username=%ED%2c%d
* 指定變量名,一旦添加了這個屬性,那么url標簽就不會再輸出到頁面,而是把生成的url保存到域中
* scope: 他與var一起使用,用來保存url。
if
if : 對應Java中的if語句<c:if test="布爾類型">..</c:if>
choose
<c:choose><c:when test="${條件1}">a</c:when><c:when test="${條件2}">b</c:when><c:when test="${條件3}">c</c:when><c:otherwise>d</c:otherwise> //default</c:choose>
forEach
可以用來循環遍歷數組,集合
還可以用來計數
//計數
<c:forEach var="i" begin="1" end = "10">${i}<br>
</c:forEach>
屬性介紹:
* var 循環變量
* begin 設置循環變量初始值
* end 設置循環變量結束值
* step 設置步長,等同于 i++或者是i += 2,默認為1
用來輸出數組和集合<%String[] strs = {"one", "two", "three", "four", "five"};request.setAttribute("strs", strs);%><c:forEach items="${requestScope.strs }" var ="str">${str } </c:forEach>等同于增強for
for(String str:strs){...
}屬性:
* items: 指定要循環的對象,他可以是一個數組,或者是一個集合
* var: 把數組和集合中的每一個元素賦值個var指定的變量。
**注意:items中不能有空格,否則這個錯誤很難發現,既不能寫為 items="${param.name } " **
**引號內是不能夠有空格,el表達式中可有**
循環狀態
可以使用varStatus來創建循環狀態變量
屬性:
* count 循環元素的個數
* index 循環元素的下標
* first 是否為第一個元素
* last 是否為最后一個元素
* current 當前元素
<c:forEach items="${requestScope.strs }" var ="str" varStatus="vs">${vs.index }${vs.count }${vs.first }${vs.last }${vs.current} ${str } <br></c:forEach>
fmt標簽庫常用標簽
格式化時間
<%Date date = new Date();pageContext.setAttribute("date", date);%><fmt:formatDate value="${date }" pattern="yyyy-MM-dd HH:mm:ss"/>
屬性介紹
* value 指定一個Date類型的變量
* pattern 用來指定輸出的模板!例如:yyyy-MM-dd HH:mm:ss
<fmt:formatNumber value="${num }" pattern="0.000" />
// 取舍是四舍五入,不夠為補 0
<fmt:formatNumber value="${num }" pattern="#.###" />
// 取舍時四舍五入, 不夠不補位 0
總結
以上是生活随笔為你收集整理的JSTL标签库学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jsp的学习笔记
- 下一篇: Centos7.4安装Nginx