?
?
菜鳥教程
?
JSTL 1.1 與 JSTL 1.2 之間的區別?如何下載 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已經過時,Apache已將其置于存檔中。選擇jakarta-taglibs-standard-current.zip文件。
但是,如果您正在運行Servlet 2.5兼容容器并且web.xml聲明為至少Servlet 2.5,
那么您應該能夠使用新的JSTL 1.2。
需要注意的是JSTL 1.2并沒有要求standard.jar。
?
根據JSTL標簽所提供的功能,可以將其分為5個類別。
從Apache的標準標簽庫中下載的二進包(jakarta-taglibs-standard-current.zip)。
?
下載?jakarta-taglibs-standard-1.1.2.zip?包并解壓,將?jakarta-taglibs-standard-1.1.2/lib/?下的兩個 jar 文件:standard.jar?和?jstl.jar?
文件拷貝到?/WEB-INF/lib/?下。
?
將 tld 下的需要引入的 tld 文件復制到 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>?標簽。
核心標簽是最常用的 JSTL標簽。引用核心標簽庫的語法如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>?
?
<c:out>標簽用來顯示一個表達式的結果,與<%= %>作用相似,
它們的區別就是<c:out>標簽可以直接通過"."操作符來訪問屬性。
如果想要訪問customer.address.street,只需要這樣寫:<c:out value="customer.address.street">。
?
?
?
?
<c:set>標簽用于設置變量值和對象屬性。
<c:set>標簽就是<jsp:setProperty>行為標簽的孿生兄弟。
這個標簽之所以很有用呢,是因為它會計算表達式的值,然后使用計算結果來設置 JavaBean 對象或 java.util.Map 對象的值。
?
<c:set var="salary" scope="session" value="${2000*2}"/> <c:out value="${salary}"/>?
<c:remove>標簽用于移除一個變量,可以指定這個變量的作用域,若未指定,則默認為變量第一次出現的作用域。
這個標簽不是特別有用,不過可以用來確保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> 標簽主要用來處理產生錯誤的異常狀況,并且將錯誤信息儲存起來。
?
<c:catch var ="catchException"><% int x = 5/0;%> </c:catch><c:if test = "${catchException != null}"><p>異常為 : ${catchException} <br />發生了異常: ${catchException.message}</p> </c:if>?<c:if>標簽判斷表達式的值,如果表達式的值為 true 則執行其主體內容。
?
<c:set var="salary" scope="session" value="${2000*2}"/> <c:if test="${salary > 2000}"><p>我的工資為: <c:out value="${salary}"/><p> </c:if><c:choose>標簽與Java switch語句的功能一樣,用于在眾多選項中做出選擇。
switch語句中有case,而<c:choose>標簽中對應有<c:when>,
switch語句中有default,而<c:choose>標簽中有<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>標簽提供了所有<jsp:include>行為標簽所具有的功能,同時也允許包含絕對URL。
舉例來說,使用<c:import>標簽可以包含一個FTP服務器中不同的網頁內容。
?
<c:import var="data" url="http://www.runoob.com"/> <c:out value="${data}"/>以上程序將會打印http://www.runoob.com"頁面的源代碼
?
這些標簽封裝了Java中的for,while,do-while循環。
相比而言,<c:forEach>標簽是更加通用的標簽,因為它迭代一個集合中的對象。
<c:forTokens>標簽通過指定分隔符將字符串分隔為一個數組然后迭代它們。
?
<c:forEach>標簽有如下屬性:
?
items | 要被循環的信息 | 否 | 無 |
begin | 開始的元素(0=第一個元素,1=第二個元素) | 否 | 0 |
end | 最后一個元素(0=第一個元素,1=第二個元素) | 否 | Last element |
step | 每一次迭代的步長 | 否 | 1 |
var | 代表當前條目的變量名稱 | 否 | 無 |
varStatus | 代表循環狀態的變量名稱 | 否 | 無 |
?<c:forTokens>標簽與<c:forEach>標簽有相似的屬性,
不過<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>標簽用于在<c:url>標簽中指定參數,而且與URL編碼相關。
在<c:param>標簽內,name屬性表明參數的名稱,value屬性表明參數的值。
?
<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發送兩個參數。</a>?<c:redirect>標簽通過自動重寫URL來將瀏覽器重定向至一個新的URL,它提供內容相關的URL,并且支持c:param標簽。
<c:redirect url="http://www.runoob.com"/>
<c:url>標簽將URL格式化為一個字符串,然后存儲在一個變量中。
這個標簽在需要的時候會自動重寫URL。
var屬性用于存儲格式化后的URL。
<c:url>標簽只是用于調用response.encodeURL()方法的一種可選的方法。它真正的優勢在于提供了合適的URL編碼,包括<c:param>中指定的參數。
?
<h1><c:url>實例 Demo</h1><a href="<c:url value="http://www.runoob.com"/>">這個鏈接通過 <c:url> 標簽生成。</a>?
轉載于:https://www.cnblogs.com/mkl7/p/10836448.html
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
【資料圖】最近這段時間總有小伙伴問小編dnf劍豪加點是什么,小編為此在網上搜尋了一些有關于dnf劍豪加點的知識送給大家,希望能解答各位小伙伴的疑惑。1、暴擊:根據自身的暴擊率進行學習,進圖砍怪在冥思被動5層條件下達到97%暴擊為滿暴擊。2、連環斬:+1,用于跑圖。3、櫻落斬:+1或者不學,可以用來躲無敵技能。4、一花渡江:+1,用于跑圖,其次可以在強制中斷轉職系列技能后使用。5、碎巖裂地斬:剩余S...
一、建行基金定投手續費是多少?基金定投是一種比較受歡迎的理財方式,他的收益比儲蓄高,但是風險又沒有股票這類的大,因此許多人會在銀行辦理基金定投。那么建行基金定投手續費是多少呢?怎么辦理呢?大家保保險網將在下文為您詳細介紹。建行基金定投手續費是多少:1. 辦理手續費:一般基金定投手續費按申購金額的1,5%收取,建行打八折,也就是1.2%,如果是網銀辦理的話,打6折。如果通過基金公司辦理更便宜,一般是...
怎樣申購新股,新股申購的方式有以下兩種方式:1.線上申購:投資者在可以購買股票的相關網站或者是股票APP中直接選擇新上市的股票進行申購。2.在線下辦理:投資者也可攜帶個人身份證件到證券公司營業網點請工作人員辦理。以上是新股申購的方式。一般來說新股申購也叫打新股,是指投資者利用資金申請購買即將上市的新股。如果他們中簽就說明認購就成功了。需要注意的是申購新股需要注意以下幾種條件:1投資者申購新股時申購...