當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSTL笔记—c标签
生活随笔
收集整理的這篇文章主要介紹了
JSTL笔记—c标签
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Taglib 偽指令?
Java代碼??<%@?taglib?uri="http://java.sun.com/jsp/jstl/core"?prefix="c"?%>?? <%@?taglib?uri="http://java.sun.com/jsp/jstl/fmt"?prefix="fmt"?%>?? <%@?taglib?uri="http://java.sun.com/jsp/jstl/functions"?prefix="fn"?%>??
輸出<c:out>?
語法:?
Java代碼??<c:out?value="expression"?default="expression"?escapeXml="boolean"/>?? 說明:?
該標記對由其 value 屬性指定的表達式進行求值,然后打印結果。如果指定了可選屬性 default,那么,在對 value 屬性的表達式求值所得結果為 null 或空 String 的情況下,<c:out> 將打印其值。?
escapeXml 屬性也是可選的。它控制當用 <c:out> 標記輸出諸如“<”、“>”和“&”之類的字符(在 HTML 和 XML 中具有特殊意義)時是否應該進行轉義。如果將 escapeXml 設置為 true,則會自動將這些字符轉換成相應的 XML 實體(此處提到的字符分別轉換成 <、> 和 &)。?
例:Java代碼??<c:out?value="${user.company}"?escapeXml=="false"/>??
賦值<c:set>?
語法:?
Java代碼??<c:set?var="name"?scope="scope"?value="expression"/>?? 說明:?
<c:set> 操作提供基于標記的機制來創建和設置限制了作用域的變量。其中 var 屬性指定了限制了作用域的變量的名稱,scope 屬性表明了該變量駐留在哪個作用域中,value 屬性指定了分配給該變量的值。如果指定變量已經存在,則簡單地將所指明的值賦給它。如果不存在,則創建新的限制了作用域的變量,并用該值初始化這個變量。?
scope 屬性是可選的,其缺省值是 page。?
例:?
Java代碼??<c:set?var="timezone"?scope="session"?value="CST"/>?? <c:set?var="square"?value="${param['x']?*?param['x']}"/>??
循環?
語法:?
Java代碼??<c:forEach?var="name"?items="expression"??? varStatus="name"?begin="expression"??? end="expression"?step="expression">?? ?????????body?content?? </c:forEach>?? 說明:?
begin 和 end 屬性要么是靜態整數值,要么是可以得出整數值的表達式。它們分別指定迭代索引的初始值以及迭代索引的終止值。當使用 <c:forEach> 在整數范圍內進行迭代時,這兩個屬性是必需的,而其它所有屬性都是可選的。?
當出現 step 時,它也必須是整數值。它指定每次迭代后索引的增量。?
如果指定了 var 屬性,那么將會創建一個帶有指定名稱的并限定了作用域的變量,并將每次迭代的當前索引值賦給該變量。?
items 屬性的值應該是一個集合,對該集合的成員進行迭代,通常使用 EL 表達式指定值。?
和 var 屬性一樣, varStatus 用于創建限定了作用域的變量。不過,由 varStatus 屬性命名的變量并不存儲當前索引值或當前元素,而是賦予 javax.servlet.jsp.jstl.core.LoopTagStatus 類的實例。?
例:?
Java代碼??<table>?? ??<c:forEach?items=?? ????"${entryList}"?var="blogEntry"?varStatus="status">?? ????<tr><td?align="left"?class="blogTitle">?? ??????<c:out?value="${status.count}"/>.?? ??????<c:out?value="${blogEntry.title}"?escapeXml="false"/>?? ????</td></tr>?? ????<tr><td?align="left"?class="blogText">?? ??????<c:out?value="${blogEntry.text}"?escapeXml="false"/>?? ????</td></tr>?? ??</c:forEach>?? </table>??
If判斷?
語法:?
Java代碼??<c:if?test="expression"?var="name"?scope="scope">?? ????????body?content?? </c:if>?? 說明:?
測試表達式(test屬性值)進行求值,接下來,僅當對表達式求出的值為 true 時,它才處理標記的主體內容?
<c:if> 通過其 var 和 scope 屬性(它們所起的作用和在 <c:set> 中所起的作用一樣)選擇將測試結果賦給限定了作用域的變量。?
例:?
Java代碼??<table>?? ??<c:forEach?items=?? ????"${entryList}"?var="blogEntry"?varStatus="status">?? ????<c:if?test="${status.first}">?? ??????<tr><td?align="left"?class="blogDate">?? ????????????<c:out?value="${blogEntry.created}"/>?? ??????</td></tr>?? ????</c:if>?? ????<tr><td?align="left"?class="blogTitle">?? ??????<c:out?value="${blogEntry.title}"?escapeXml="false"/>?? ????</td></tr>?? ????<tr><td?align="left"?class="blogText">?? ??????<c:out?value="${blogEntry.text}"?escapeXml="false"/>?? ????</td></tr>?? ??</c:forEach>?? </table>??
Choose操作語法?
語法:?
Java代碼??<c:choose>?? ??<c:when?test="expression">?? ????body?content?? ??</c:when>?? ??...?? ??<c:otherwise>?? ????body?content?? ??</c:otherwise>?? </c:choose>?? 說明:?
每個要測試的條件都由相應的 <c:when> 標記來表示,至少要有一個 <c:when> 標記。只會處理第一個其 test 值為 true 的 <c:when> 標記體內的內容。如果沒有一個 <c:when> 測試返回 true ,那么會處理 <c:otherwise> 標記的主體內容。?
例:?
Java代碼??<c:choose>?? ??<c:when?test="${pageContext.request.scheme?eq?'http'}">?? ????This?is?an?insecure?Web?session.?? ??</c:when>?? ??<c:when?test="${pageContext.request.scheme?eq?'https'}">?? ????This?is?a?secure?Web?session.?? ??</c:when>?? ??<c:otherwise>?? ????You?are?using?an?unrecognized?Web?protocol.?How?did?this?happen?!?? ??</c:otherwise>?? </c:choose>??
<c:url> 操作的語法?
語法:?
Java代碼??<c:url?value="expression"?context="expression"?var="name"?scope="scope">?? ??<c:param?name="expression"?value="expression"/>?? ??...?? </c:url>?? 說明:?
<c:url> 標記,用于生成 URL。?
value 屬性用來指定基本 URL,然后在必要時標記對其進行轉換。如果這個基本 URL 以一個斜杠開始,那么會在它前面加上 servlet 的上下文名稱。可以使用 context 屬性提供顯式的上下文名稱。如果省略該屬性,那么就使用當前 servlet 上下文的名稱。這一點特別有用,因為 servlet 上下文名稱是在部署期間而不是開發期間決定的。(如果這個基本 URL 不是以斜杠開始的,那么就認為它是一個相對 URL,這時就不必添加上下文名稱。)?
如果通過嵌套 <c:param> 標記指定了任何請求參數,那么將會使用 HTTP GET 請求的標準表示法將它們的名稱和值添加到生成的 URL 后面。此外,還進行 URL 編碼:為了生成有效的 URL,將對這些參數的名稱或值中出現的任何字符適當地進行轉換。?
例:?
Java代碼??<a?href="<c:url?value='/content/sitemap.jsp'/>">View?sitemap</a>?? <c:url?value="/content/search.jsp">?? ??<c:param?name="keyword"?value="${searchTerm}"/>?? ??<c:param?name="month"?value="02/2003"/>?? </c:url>??
<c:redirect> 操作的語法?
語法:?
Java代碼??<c:redirect?url="expression"?context="expression">?? ??<c:param?name="expression"?value="expression"/>?? ??...?? </c:redirect>?? 說明:?
<c:redirect>用于向用戶的瀏覽器發送 HTTP 重定向響應,它是 JSTL 中與 javax.servlet.http.HttpServletResponse 的 sendRedirect() 方法功能相當的標記。?
例:?
Java代碼??<c:catch?var="exception">?? ??<c:import?url="ftp://ftp.example.com/package/README"/>?? </c:catch>?? <c:if?test="${not?empty?exception}">?? ??<c:redirect?url="/errors/remote.jsp"/>?? </c:if> ?
Java代碼??
輸出<c:out>?
語法:?
Java代碼??
該標記對由其 value 屬性指定的表達式進行求值,然后打印結果。如果指定了可選屬性 default,那么,在對 value 屬性的表達式求值所得結果為 null 或空 String 的情況下,<c:out> 將打印其值。?
escapeXml 屬性也是可選的。它控制當用 <c:out> 標記輸出諸如“<”、“>”和“&”之類的字符(在 HTML 和 XML 中具有特殊意義)時是否應該進行轉義。如果將 escapeXml 設置為 true,則會自動將這些字符轉換成相應的 XML 實體(此處提到的字符分別轉換成 <、> 和 &)。?
例:Java代碼??
賦值<c:set>?
語法:?
Java代碼??
<c:set> 操作提供基于標記的機制來創建和設置限制了作用域的變量。其中 var 屬性指定了限制了作用域的變量的名稱,scope 屬性表明了該變量駐留在哪個作用域中,value 屬性指定了分配給該變量的值。如果指定變量已經存在,則簡單地將所指明的值賦給它。如果不存在,則創建新的限制了作用域的變量,并用該值初始化這個變量。?
scope 屬性是可選的,其缺省值是 page。?
例:?
Java代碼??
循環?
語法:?
Java代碼??
begin 和 end 屬性要么是靜態整數值,要么是可以得出整數值的表達式。它們分別指定迭代索引的初始值以及迭代索引的終止值。當使用 <c:forEach> 在整數范圍內進行迭代時,這兩個屬性是必需的,而其它所有屬性都是可選的。?
當出現 step 時,它也必須是整數值。它指定每次迭代后索引的增量。?
如果指定了 var 屬性,那么將會創建一個帶有指定名稱的并限定了作用域的變量,并將每次迭代的當前索引值賦給該變量。?
items 屬性的值應該是一個集合,對該集合的成員進行迭代,通常使用 EL 表達式指定值。?
和 var 屬性一樣, varStatus 用于創建限定了作用域的變量。不過,由 varStatus 屬性命名的變量并不存儲當前索引值或當前元素,而是賦予 javax.servlet.jsp.jstl.core.LoopTagStatus 類的實例。?
例:?
Java代碼??
If判斷?
語法:?
Java代碼??
測試表達式(test屬性值)進行求值,接下來,僅當對表達式求出的值為 true 時,它才處理標記的主體內容?
<c:if> 通過其 var 和 scope 屬性(它們所起的作用和在 <c:set> 中所起的作用一樣)選擇將測試結果賦給限定了作用域的變量。?
例:?
Java代碼??
Choose操作語法?
語法:?
Java代碼??
每個要測試的條件都由相應的 <c:when> 標記來表示,至少要有一個 <c:when> 標記。只會處理第一個其 test 值為 true 的 <c:when> 標記體內的內容。如果沒有一個 <c:when> 測試返回 true ,那么會處理 <c:otherwise> 標記的主體內容。?
例:?
Java代碼??
<c:url> 操作的語法?
語法:?
Java代碼??
<c:url> 標記,用于生成 URL。?
value 屬性用來指定基本 URL,然后在必要時標記對其進行轉換。如果這個基本 URL 以一個斜杠開始,那么會在它前面加上 servlet 的上下文名稱。可以使用 context 屬性提供顯式的上下文名稱。如果省略該屬性,那么就使用當前 servlet 上下文的名稱。這一點特別有用,因為 servlet 上下文名稱是在部署期間而不是開發期間決定的。(如果這個基本 URL 不是以斜杠開始的,那么就認為它是一個相對 URL,這時就不必添加上下文名稱。)?
如果通過嵌套 <c:param> 標記指定了任何請求參數,那么將會使用 HTTP GET 請求的標準表示法將它們的名稱和值添加到生成的 URL 后面。此外,還進行 URL 編碼:為了生成有效的 URL,將對這些參數的名稱或值中出現的任何字符適當地進行轉換。?
例:?
Java代碼??
<c:redirect> 操作的語法?
語法:?
Java代碼??
<c:redirect>用于向用戶的瀏覽器發送 HTTP 重定向響應,它是 JSTL 中與 javax.servlet.http.HttpServletResponse 的 sendRedirect() 方法功能相當的標記。?
例:?
Java代碼??
轉載于:https://www.cnblogs.com/chenying99/archive/2012/07/21/2602598.html
總結
以上是生活随笔為你收集整理的JSTL笔记—c标签的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟主机6大骗术,站长朋友小心了
- 下一篇: Java容器类和包装类