學習JSTL

今天我們學的是JSTL,下面是JSTL的概述:

       JSTL英文全稱是“JSP Standard Tag Library”,即JSP標準標籤庫之意。
       JSTL是由JCP(Java Commnunity Process)指定的標準規範,是一組形如html的標籤,使得程序員即使不需要學習Java也可以編寫動態Web頁。自2002年中期發佈後,它已成爲JSP平臺的一個標準組成部分。
       JSTL提供了諸如循環、條件、數據庫訪問、XML處理、國際化等開發上的工具和流程。
Core 標籤庫:

        核心標籤庫主要包括通用標籤、條件標籤、迭代標籤和與URL相關的標籤。

       在使用Core標籤庫的JSP文件的開始部分,添加代碼: <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 

 <c:out>標籤:
用於將表達式的結果輸出到當前的JspWriter對象中。其功能類似於JSP的表達式<%=  %>,或者EL表達式${}。
語法 <c:out value=“value” [default=“default value”] [escapeXml=“true|false”] /> <c:out value=“value”  [escapeXml=“true|false”] >   default value </c:out>

<c:set>標籤
<c:set>標籤用於設置JSP頁面的各種域範圍中的變量,或者設置java.util.Map對象或JavaBean對象的屬性。
語法
<c:set value=“value” var=“name” [scope=“範圍”]/>將value的值保存到名爲name的變量中,同時name變量保存到選定的作用範圍中。例如, <c:set value=“sunwk” name=“username” scope=“session”/>
<c:set var=“name” [scope=“範圍”] >  value </c:set> 將標籤體中的內容保存到名爲name的變量中,同時name變量保存到選定的作用範圍中。例如, <c:set var=“username” scope=“session”>     sunwk </c:set>
<c:set value=“value” target=“target” property=“propertyName” />將value的值保存到target對象的propertyName屬性中。
<c:set target=“target” property=“propertyName”>  value </c:set> 將標籤體的內容保存到target對象的propertyName屬性中。

通用標籤:

<c:remove>標籤
<c:remove>標籤用於移除JSP頁面中指定域範圍中的變量。
語法 <c:remove var=“name” [scope=“範圍”]/>

<c:catch>標籤
<c:catch>標籤用於捕獲嵌套在標籤體內的內容拋出的異常對象,並將異常信息保存到變量中。
語法 <c:catch [var=“name”]>   body content </c:catch> 將可能發生異常的代碼放到該標籤中,如果發生異常,異常信息保存到name變量中。

<c:if>標籤
<c:if>標籤用來做條件判斷,功能類似於JSP中的<%if(boolean){}%>。
條件標籤:

<c:choose>、<c:when>、<c:otherwise>標籤
<c:choose>標籤用於提供條件選擇的上下文,它必須與<c:when>和<c:otherwise>標籤一起使用。
<c:when>作爲<c:choose>的子標籤,<c:when>有一個test屬性,該屬性的值爲布爾型,如果test的值爲true,則執行<c:when>標籤體的內容。
<c:otherwise>標籤沒有屬性,它必須作爲<c:choose>標籤的最後分支出現。
迭代標籤:

<c:forEach>標籤
<c:forEach>標籤用於對包含了多個對象的集合進行迭代,重複執行它的標籤體,或者重複迭代固定的次數。
注意:
items屬性並不是一定要有的屬性,但是當沒有使用items屬性時,就一定要使用begin和end屬性。
varStatus:用來保存現有遍歷計數相關的信息。例如,如果varStatus=“i”,那麼會將相應信息放到名稱爲i的變量中,i變量有四個屬性值,index、count、first和last。

index:現在所操作的成員的索引;

count:所操作的成員總數;

first:現在所操作成員是否是第一個成員;


<c:forEach items=“${names}” var=“name” varStatus=“i”>
 ${name}<br>
 index:${i.index} <br> count:${i.count} <br>
 first:${i.first} <br>  last:${i.last}<br>
</c:forEach>

<c:forTokens>標籤
<c:forTokens>標籤用來瀏覽一字符串中所有的成員,其成員是由定義符號(Delimiters)所分隔的。
<c:forTokens items=“a:b:c:d” delims=“:” var=“token”>
  <c:out value=“${token}” /> <br>
</c:forTokens>
注意:這個標記的使用效果相當於java.util.StringTokenizer類。將字符串“a:b:c:d”以“:”分隔符分開,token是循環到當前所分割得到的字符串。

URL相關的標籤:

JSP網頁開發中經常用到超鏈接、頁面的包含和重定向等操作,在JSTL中,也提供了相應的標籤來完成這些功能,這些標籤包括<c:import>、<c:url>、<c:redirect>和<c:param>。
<c:import>標籤:可以把其他靜態或者動態文件包含到本身的JSP頁面中。與JSP的動作<jsp:include>的區別在於:<jsp:include>只能包含和自己在同一個Web應用中的文件,<c:import>不僅能包含和自己在同一個Web應用下的文件,還可包含其他Web應用或其他網站的文件。
屬性:
url屬性是必須要有的,它是用來設定被包含頁面的地址,可以是絕對地址也可以是相對地址。
url如果使用相對地址,把同一個Web應用中的文件引入的話,例如<c:import url=“MyHtml.html”/>
還可使用絕對路徑,將其他網站的文件包含進來。例如<c:import url=“http://www.baidu.com” charEncoding=“gb2312”/>
當var屬性存在時,把文件內容包含進來,但是它不輸出到網頁上,而是保存到var設定的變量中,而屬性scope設定該變量的作用範圍。
<c:url>標籤:
<c:url>標籤在JSP頁面構造一個URL,它提供了3個功能元素,它們可以在URL前面附加當前Servlet上下文的名稱;可以爲會話管理重寫URL;可以對請求參數名稱和值進行URL編碼,這些功能在爲J2EE Web應用程序構造URL時特別有用。

 

 

 

 

 


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章