標籤:style blog http java color 使用
JSTL筆記—c標籤
部落格分類:
C++C#CJavaServlet
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>