jstl 標籤使用

來源:互聯網
上載者:User

標籤:style   blog   http   java   color   使用   

JSTL筆記—c標籤 部落格分類:
  • 開發
C++C#CJavaServlet

Taglib 偽指令

Java代碼  
  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>  
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>  



輸出<c:out>
文法:

Java代碼  
  1. <c:out value="expression" default="expression" escapeXml="boolean"/>  

說明:
該標記對由其 value 屬性指定的運算式進行求值,然後列印結果。如果指定了可選屬性 default,那麼,在對 value 屬性的運算式求值所得結果為 null 或空 String 的情況下,<c:out> 將列印其值。
escapeXml 屬性也是可選的。它控制當用 <c:out> 標記輸出諸如“<”、“>”和“&”之類的字元(在 HTML 和 XML 中具有特殊意義)時是否應該進行轉義。如果將 escapeXml 設定為 true,則會自動將這些字元轉換成相應的 XML 實體(此處提到的字元分別轉換成 &lt;、&gt; 和 &amp;)。
例:

Java代碼  
  1. <c:out value="${user.company}" escapeXml=="false"/>  



賦值<c:set>
文法:

Java代碼  
  1. <c:set var="name" scope="scope" value="expression"/>  

說明:
<c:set> 操作提供基於標記的機制來建立和設定限制了範圍的變數。其中 var 屬性指定了限制了範圍的變數的名稱,scope 屬性工作表明了該變數駐留在哪個範圍中,value 屬性指定了分配給該變數的值。如果指定變數已經存在,則簡單地將所指明的值賦給它。如果不存在,則建立新的限制了範圍的變數,並用該值初始化這個變數。
scope 屬性是可選的,其預設值是 page。
例:

Java代碼  
  1. <c:set var="timezone" scope="session" value="CST"/>  
  2. <c:set var="square" value="${param[‘x‘] * param[‘x‘]}"/>  



迴圈
文法:

Java代碼  
  1. <c:forEach var="name" items="expression"   
  2. varStatus="name" begin="expression"   
  3. end="expression" step="expression">  
  4.          body content  
  5. </c:forEach>  

說明:
begin 和 end 屬性要麼是靜態整數值,要麼是可以得出整數值的運算式。它們分別指定迭代索引的初始值以及迭代索引的終止值。當使用 <c:forEach> 在整數範圍內進行迭代時,這兩個屬性是必需的,而其它所有屬性都是可選的。
當出現 step 時,它也必須是整數值。它指定每次迭代後索引的增量。
如果指定了 var 屬性,那麼將會建立一個帶有指定名稱的並限定了範圍的變數,並將每次迭代的當前索引值賦給該變數。
items 屬性的值應該是一個集合,對該集合的成員進行迭代,通常使用 EL 運算式指定值。
和 var 屬性一樣, varStatus 用於建立限定了範圍的變數。不過,由 varStatus 屬性命名的變數並不儲存當前索引值或當前元素,而是賦予 javax.servlet.jsp.jstl.core.LoopTagStatus 類的執行個體。
例:

Java代碼  
  1. <table>  
  2.   <c:forEach items=  
  3.     "${entryList}" var="blogEntry" varStatus="status">  
  4.     <tr><td align="left" class="blogTitle">  
  5.       <c:out value="${status.count}"/>.  
  6.       <c:out value="${blogEntry.title}" escapeXml="false"/>  
  7.     </td></tr>  
  8.     <tr><td align="left" class="blogText">  
  9.       <c:out value="${blogEntry.text}" escapeXml="false"/>  
  10.     </td></tr>  
  11.   </c:forEach>  
  12. </table>  



If判斷
文法:

Java代碼  
  1. <c:if test="expression" var="name" scope="scope">  
  2.         body content  
  3. </c:if>  

說明:
測試運算式(test屬性值)進行求值,接下來,僅當對錶達式求出的值為 true 時,它才處理標記的主體內容
<c:if> 通過其 var 和 scope 屬性(它們所起的作用和在 <c:set> 中所起的作用一樣)選擇將測試結果賦給限定了範圍的變數。
例:

Java代碼  
  1. <table>  
  2.   <c:forEach items=  
  3.     "${entryList}" var="blogEntry" varStatus="status">  
  4.     <c:if test="${status.first}">  
  5.       <tr><td align="left" class="blogDate">  
  6.             <c:out value="${blogEntry.created}"/>  
  7.       </td></tr>  
  8.     </c:if>  
  9.     <tr><td align="left" class="blogTitle">  
  10.       <c:out value="${blogEntry.title}" escapeXml="false"/>  
  11.     </td></tr>  
  12.     <tr><td align="left" class="blogText">  
  13.       <c:out value="${blogEntry.text}" escapeXml="false"/>  
  14.     </td></tr>  
  15.   </c:forEach>  
  16. </table>  



Choose操作文法
文法:

Java代碼  
  1. <c:choose>  
  2.   <c:when test="expression">  
  3.     body content  
  4.   </c:when>  
  5.   ...  
  6.   <c:otherwise>  
  7.     body content  
  8.   </c:otherwise>  
  9. </c:choose>  

說明:
每個要測試的條件都由相應的 <c:when> 標記來表示,至少要有一個 <c:when> 標記。只會處理第一個其 test 值為 true 的 <c:when> 標記體內的內容。如果沒有一個 <c:when> 測試返回 true ,那麼會處理 <c:otherwise> 標記的主體內容。
例:

Java代碼  
  1. <c:choose>  
  2.   <c:when test="${pageContext.request.scheme eq ‘http‘}">  
  3.     This is an insecure Web session.  
  4.   </c:when>  
  5.   <c:when test="${pageContext.request.scheme eq ‘https‘}">  
  6.     This is a secure Web session.  
  7.   </c:when>  
  8.   <c:otherwise>  
  9.     You are using an unrecognized Web protocol. How did this happen?!  
  10.   </c:otherwise>  
  11. </c:choose>  



<c:url> 操作的文法
文法:

Java代碼  
  1. <c:url value="expression" context="expression" var="name" scope="scope">  
  2.   <c:param name="expression" value="expression"/>  
  3.   ...  
  4. </c:url>  

說明:
<c:url> 標記,用於產生 URL。
value 屬性用來指定基本 URL,然後在必要時標記對其進行轉換。如果這個基本 URL 以一個斜杠開始,那麼會在它前面加上 servlet 的上下文名稱。可以使用 context 屬性提供顯式的上下文名稱。如果省略該屬性,那麼就使用當前 servlet 內容相關的名稱。這一點特別有用,因為 servlet 上下文名稱是在部署期間而不是開發期間決定的。(如果這個基本 URL 不是以斜杠開始的,那麼就認為它是一個相對 URL,這時就不必添加上下文名稱。)
如果通過嵌套 <c:param> 標記指定了任何請求參數,那麼將會使用 HTTP GET 請求的標準標記法將它們的名稱和值添加到產生的 URL 後面。此外,還進行 URL 編碼:為了產生有效 URL,將對這些參數的名稱或值中出現的任何字元適當地進行轉換。
例:

Java代碼  
  1. <a href="<c:url value=‘/content/sitemap.jsp‘/>">View sitemap</a>  
  2. <c:url value="/content/search.jsp">  
  3.   <c:param name="keyword" value="${searchTerm}"/>  
  4.   <c:param name="month" value="02/2003"/>  
  5. </c:url>  



<c:redirect> 操作的文法
文法:

Java代碼  
  1. <c:redirect url="expression" context="expression">  
  2.   <c:param name="expression" value="expression"/>  
  3.   ...  
  4. </c:redirect>  

說明:
<c:redirect>用於向使用者的瀏覽器發送 HTTP 重新導向響應,它是 JSTL 中與 javax.servlet.http.HttpServletResponse 的 sendRedirect() 方法功能相當的標記。
例:

Java代碼  
    1. <c:catch var="exception">  
    2.   <c:import url="ftp://ftp.example.com/package/README"/>  
    3. </c:catch>  
    4. <c:if test="${not empty exception}">  
    5.   <c:redirect url="/errors/remote.jsp"/>  
    6. </c:if> 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.