【JSP開發】JSTL標簽參考手冊
前言
=========================================================================
JSTL標簽庫,是日常開發經常使用的,也是眾多標簽中性能最好的。把常用的內容,放在這裏備份一份,隨用隨查。盡量做到不用查,就可以隨手就可以寫出來。這算是Java程序員的基本功吧,一定要紮實。
JSTL全名為JavaServer Pages Standard Tag Library,目前最新的版本為1.1版。JSTL是由JCP(Java Community Process)所製定的標準規範,它主要提供給Java Web開發人員一個標準通用的標簽函數庫。
Web程序員能夠利用JSTL和EL來開發Web程序,取代傳統直接在頁麵上嵌入Java程序(Scripting)的做法,以提高程序的閱讀性、維護性和方便性。
JSTL 1.1必須在支持Servlet 2.4且JSP 2.0以上版本的Container才可使用
<%@ taglib %>引入標簽庫
=========================================================================
1、以classPath中,加入jar包: standard-1.1.2.jar , jstl-1.1.2.jar
2、在相目\WEB-INF\tld\文件夾中放入常用的tld文件:c.tld,fmt.tld
3、在jsp文件的頂部加入以下內容:
- <%@ taglib uri="https://java.sun.com/jsp/jstl/core" prefix="c" %>
- <%@ taglib uri="https://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
- <%@ taglib uri="https://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<c:> 核心標簽庫
==========================================================================
JSTL 核心標簽庫(C標簽)標簽共有13個,功能上分為4類:
1.表達式控製標簽:out、set、remove、catch
2.流程控製標簽:if、choose、when、otherwise
3.循環標簽:forEach、forTokens
4.URL操作標簽:import、url、redirect
<c:forEach> 標簽
-------------------------------------------------------------------
為循環控製,它可以將集合(Collection)中的成員循序瀏覽一遍。
<c:forEach> 標簽的語法 說明 :
語法1:迭代一集合對象之所有成員
- <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
- 本體內容
- </c:forEach>
語法2:迭代指定的次數
- <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>
- 本體內容
- </c:forEach>
<c:forEach> 標簽的 屬性說明 :
<c:forEach> 標簽的 屬性 : varStatus屬性: 它的提供另外四個屬性:index,count,fist和last,它們個自的意義如下:
- 屬性 類型 意義
- index number 現在指到成員的索引
- count number 總共指到成員的總和
- first boolean 現在指到成員是否為第一個
- last boolean 現在指到成員是否為最後一個
<c:forEach> 遍曆 List列表:
對於一個基本類型的數組,當前元素將作為相應包裝類(Integer、Float等等)的一個實例提供。
- <c:forEach items="${domainList }" var="item">
- <tr>
- <td align="center" valign="middle">${item["domain"]==null?" ":item["domain"]}</td>
- <td align="center" valign="middle"><fmt:formatDate value="${item['bind_date']}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
- <td align="center" valign="middle">
- <c:if test="${item['domain']!=null}">
- <a href="javascript:;" id="${item['domain']}" class="del"> </a>
- </c:if>
- </td>
- </tr>
- </c:forEach>
<c:forEach> 遍曆Map:
對於一個java.util.Map,當前元素則作為一個java.util.Map.Entry提供。
- <c:if test="${!empty permissionMap}">
- <c:forEach items="${permissionMap}" var="item">
- <tr>
- <td>${item.value.id}</td>
- <td>${item.value.urlOnClass}</td>
- <td>${item.value.urlOnMethod}</td>
- </tr>
- </c:forEach>
- </c:if>
<c:forTokens> 標簽
-------------------------------------------------------------------
用來瀏覽一字符串中所有的成員,其成員是由定義符號(delimiters)所分隔的。
<c:forTokens> 標簽的語法 說明 :
- <c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"]
- [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
- 本體內容
- </c:forTokens>
<c:forTokens> 標簽的 屬性說明 :
<c:out> 標簽
-------------------------------------------------------------------
主要用來顯示數據的內容
<c:out> 標簽的語法 說明 :
語法1:沒有本體(body)內容
語法2:有本體內容
<c:forEach> 標簽的 屬性說明 : 略
一般來說,<c:out>默認會將<、>、’、” 和 & 轉換為 <、>、'、" 和&。假若不想轉換時,隻需要設定<c:out>的escapeXml屬性為fasle就可以了。
<c:set> 標簽
-------------------------------------------------------------------
主要用來將變量儲存至JSP範圍中或是JavaBean的屬性中。
<c:set> 標簽的語法 說明 :
語法1:將value的值儲存至範圍為scope的 varName 變量之中
語法2:將本體內容的數據儲存至範圍為scope的 varName 變量之中
語法3:將 value的值儲存至 target 對象的屬性中
語法4:將本體內容的數據儲存至target 對象的屬性中
<c:set> 標簽的 屬性說明 :
<c:remove> 標簽
-------------------------------------------------------------------
主要用來移除變量。
<c:remove> 標簽的語法 說明 :
<c:catch> 標簽
-------------------------------------------------------------------
主要用來處理產生錯誤的異常狀況,並且將錯誤信息儲存起來。
<c:catch> 標簽的語法 說明 :
<c:if> 標簽
-------------------------------------------------------------------
的用途就和我們一般在程序中用的if一樣。
<c:if> 標簽的語法 說明 :
語法1:沒有本體內容(body)
語法2:有本體內容
- <c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
- 本體內容
- </c:if>
示例:
- <c:if test="${not empty item.publish_time}">
- 內容
- </c:if>
- <c:if test="${item['domain']!=null}">
- 內容
- </c:if>
- <c:if test="${!empty permissionMap}">
- 內容
- </c:if>
c:choose> <c:when> <c:otherwise> 標簽
-------------------------------------------------------------------
<c:choose when otherwise> 標簽的語法 說明 :
- <c:set var="score">85</c:set>
- <c:choose>
- <c:when test="${score>=90}">
- 你的成績為優秀!
- </c:when>
- <c:when test="${score>=70&&score<90}">
- 您的成績為良好!
- </c:when>
- <c:when test="${score>60&&score<70}">
- 您的成績為及格
- </c:when>
- <c:otherwise>
- 對不起,您沒有通過考試!
- </c:otherwise>
- </c:choose>
最後更新:2017-04-03 05:40:00