javascript
JSP 标准标签库(JSTL)(菜鸟教程)
?
?
菜鳥教程
?
JSTL 1.1 與 JSTL 1.2 之間的區(qū)別?如何下載 JSTL 1.2?
JSTL 1.2 中不要求 standard.jar 包。
您可以在 Maven 中央倉庫中找到它們。
http://repo2.maven.org/maven2/javax/servlet/jstl/
http://repo2.maven.org/maven2/taglibs/standard/
由于JSTL 1.1已經(jīng)過時,Apache已將其置于存檔中。選擇jakarta-taglibs-standard-current.zip文件。
但是,如果您正在運(yùn)行Servlet 2.5兼容容器并且web.xml聲明為至少Servlet 2.5,
那么您應(yīng)該能夠使用新的JSTL 1.2。
需要注意的是JSTL 1.2并沒有要求standard.jar。
?
根據(jù)JSTL標(biāo)簽所提供的功能,可以將其分為5個類別。
- 核心標(biāo)簽
- 格式化標(biāo)簽
- SQL 標(biāo)簽
- XML 標(biāo)簽
- JSTL 函數(shù)
JSTL 庫安裝
從Apache的標(biāo)準(zhǔn)標(biāo)簽庫中下載的二進(jìn)包(jakarta-taglibs-standard-current.zip)。
- 官方下載地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
?
下載?jakarta-taglibs-standard-1.1.2.zip?包并解壓,將?jakarta-taglibs-standard-1.1.2/lib/?下的兩個 jar 文件:standard.jar?和?jstl.jar?
文件拷貝到?/WEB-INF/lib/?下。
?
將 tld 下的需要引入的 tld 文件復(fù)制到 WEB-INF 目錄下。
接下來我們在 web.xml 文件中添加以下配置:
?
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><jsp-config><taglib><taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri><taglib-location>/WEB-INF/fmt.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jsp/jstl/fmt-rt</taglib-uri><taglib-location>/WEB-INF/fmt-rt.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri><taglib-location>/WEB-INF/c.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jsp/jstl/core-rt</taglib-uri><taglib-location>/WEB-INF/c-rt.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jsp/jstl/sql</taglib-uri><taglib-location>/WEB-INF/sql.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jsp/jstl/sql-rt</taglib-uri><taglib-location>/WEB-INF/sql-rt.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jsp/jstl/x</taglib-uri><taglib-location>/WEB-INF/x.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jsp/jstl/x-rt</taglib-uri><taglib-location>/WEB-INF/x-rt.tld</taglib-location></taglib></jsp-config> </web-app>使用任何庫,你必須在每個 JSP 文件中的頭部包含?<taglib>?標(biāo)簽。
核心標(biāo)簽
核心標(biāo)簽是最常用的 JSTL標(biāo)簽。引用核心標(biāo)簽庫的語法如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>?
<c:out> 標(biāo)簽c:out
?
<c:out>標(biāo)簽用來顯示一個表達(dá)式的結(jié)果,與<%= %>作用相似,
它們的區(qū)別就是<c:out>標(biāo)簽可以直接通過"."操作符來訪問屬性。
如果想要訪問customer.address.street,只需要這樣寫:<c:out value="customer.address.street">。
?
語法格式
<c:out value="<string>" default="<string>" escapeXml="<true|false>"/>?
?
?
<c:set> 標(biāo)簽? ?c:set
<c:set>標(biāo)簽用于設(shè)置變量值和對象屬性。
<c:set>標(biāo)簽就是<jsp:setProperty>行為標(biāo)簽的孿生兄弟。
這個標(biāo)簽之所以很有用呢,是因為它會計算表達(dá)式的值,然后使用計算結(jié)果來設(shè)置 JavaBean 對象或 java.util.Map 對象的值。
?
<c:set var="salary" scope="session" value="${2000*2}"/> <c:out value="${salary}"/>?
<c:remove> 標(biāo)簽??c:remove
<c:remove>標(biāo)簽用于移除一個變量,可以指定這個變量的作用域,若未指定,則默認(rèn)為變量第一次出現(xiàn)的作用域。
這個標(biāo)簽不是特別有用,不過可以用來確保JSP完成清理工作。
<c:remove var="<string>" scope="<string>"/>?
<c:set var="salary" scope="session" value="${2000*2}"/> <p>salary 變量值: <c:out value="${salary}"/></p> <c:remove var="salary"/> <p>刪除 salary 變量后的值: <c:out value="${salary}"/></p><c:catch> 標(biāo)簽??c:catch
?<c:catch> 標(biāo)簽主要用來處理產(chǎn)生錯誤的異常狀況,并且將錯誤信息儲存起來。
?
<c:catch var ="catchException"><% int x = 5/0;%> </c:catch><c:if test = "${catchException != null}"><p>異常為 : ${catchException} <br />發(fā)生了異常: ${catchException.message}</p> </c:if><c:if> 標(biāo)簽? ?c:if
?<c:if>標(biāo)簽判斷表達(dá)式的值,如果表達(dá)式的值為 true 則執(zhí)行其主體內(nèi)容。
?
<c:set var="salary" scope="session" value="${2000*2}"/> <c:if test="${salary > 2000}"><p>我的工資為: <c:out value="${salary}"/><p> </c:if><c:choose>, <c:when>, <c:otherwise> 標(biāo)簽? ?c:choose? ?c:when? ?c:otherwise
<c:choose>標(biāo)簽與Java switch語句的功能一樣,用于在眾多選項中做出選擇。
switch語句中有case,而<c:choose>標(biāo)簽中對應(yīng)有<c:when>,
switch語句中有default,而<c:choose>標(biāo)簽中有<c:otherwise>。
?
<c:set var="salary" scope="session" value="${2000*2}"/> <p>你的工資為 : <c:out value="${salary}"/></p> <c:choose><c:when test="${salary <= 0}">太慘了。</c:when><c:when test="${salary > 1000}">不錯的薪水,還能生活。</c:when><c:otherwise>什么都沒有。</c:otherwise> </c:choose><c:import> 標(biāo)簽? ??c:import
<c:import>標(biāo)簽提供了所有<jsp:include>行為標(biāo)簽所具有的功能,同時也允許包含絕對URL。
舉例來說,使用<c:import>標(biāo)簽可以包含一個FTP服務(wù)器中不同的網(wǎng)頁內(nèi)容。
?
<c:import var="data" url="http://www.runoob.com"/> <c:out value="${data}"/>以上程序?qū)蛴ttp://www.runoob.com"頁面的源代碼
?
<c:forEach>, <c:forTokens> 標(biāo)簽? ?c:forEach? ?c:forTokens
這些標(biāo)簽封裝了Java中的for,while,do-while循環(huán)。
相比而言,<c:forEach>標(biāo)簽是更加通用的標(biāo)簽,因為它迭代一個集合中的對象。
<c:forTokens>標(biāo)簽通過指定分隔符將字符串分隔為一個數(shù)組然后迭代它們。
?
<c:forEach>標(biāo)簽有如下屬性:
?
| items | 要被循環(huán)的信息 | 否 | 無 |
| begin | 開始的元素(0=第一個元素,1=第二個元素) | 否 | 0 |
| end | 最后一個元素(0=第一個元素,1=第二個元素) | 否 | Last element |
| step | 每一次迭代的步長 | 否 | 1 |
| var | 代表當(dāng)前條目的變量名稱 | 否 | 無 |
| varStatus | 代表循環(huán)狀態(tài)的變量名稱 | 否 | 無 |
?<c:forTokens>標(biāo)簽與<c:forEach>標(biāo)簽有相似的屬性,
不過<c:forTokens>還有另一個屬性:
?
| delims | 分隔符 | 是 | 無 |
?
<c:forEach var="i" begin="1" end="5">Item <c:out value="${i}"/><p> </c:forEach><c:forTokens>演示實例
<c:forTokens items="google,runoob,taobao" delims="," var="name"><c:out value="${name}"/><p> </c:forTokens><c:param> 標(biāo)簽? ?c:param
<c:param>標(biāo)簽用于在<c:url>標(biāo)簽中指定參數(shù),而且與URL編碼相關(guān)。
在<c:param>標(biāo)簽內(nèi),name屬性表明參數(shù)的名稱,value屬性表明參數(shù)的值。
?
<h1><c:param> 實例</h1><c:url var="myURL" value="main.jsp"><c:param name="name" value="Runoob"/><c:param name="url" value="www.runoob.com"/></c:url><a href="/<c:out value="${myURL}"/>">使用 <c:param> 為指定URL發(fā)送兩個參數(shù)。</a><c:redirect> 標(biāo)簽? ??c:redirect
?<c:redirect>標(biāo)簽通過自動重寫URL來將瀏覽器重定向至一個新的URL,它提供內(nèi)容相關(guān)的URL,并且支持c:param標(biāo)簽。
<c:redirect url="http://www.runoob.com"/>
<c:url> 標(biāo)簽? ?c:url
<c:url>標(biāo)簽將URL格式化為一個字符串,然后存儲在一個變量中。
這個標(biāo)簽在需要的時候會自動重寫URL。
var屬性用于存儲格式化后的URL。
<c:url>標(biāo)簽只是用于調(diào)用response.encodeURL()方法的一種可選的方法。它真正的優(yōu)勢在于提供了合適的URL編碼,包括<c:param>中指定的參數(shù)。
?
<h1><c:url>實例 Demo</h1><a href="<c:url value="http://www.runoob.com"/>">這個鏈接通過 <c:url> 標(biāo)簽生成。</a>?
轉(zhuǎn)載于:https://www.cnblogs.com/mkl7/p/10836448.html
總結(jié)
以上是生活随笔為你收集整理的JSP 标准标签库(JSTL)(菜鸟教程)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 批量导入手机通讯录_大批量手机号导入通讯
- 下一篇: JSP高级进阶