JSP學習筆記5

USING JSP TAG LIBRARIES

JSP STANDARD TAG LIBARARY(JSTL)

 1.<c:forEach>標籤的語法定義如下所示。

                  <c:forEach var="name" items="expression" varStatus="name"

                           begin="expression" end="expression" step="expression">

                           body content

                  </c:forEach>

         <c:forEach>標籤具有以下一些屬性:

l          var:迭代參數的名稱。在迭代體中可以使用的變量的名稱,用來表示每一個迭代變量。類型爲String。

l          items:要進行迭代的集合,包括JAVA所有集合類型,迭代器,枚舉器和基本數組。
l          varStatus:迭代變量的名稱,用來表示迭代的狀態,可以訪問到迭代自身的信息。

l          begin:如果指定了items,那麼迭代就從items[begin]開始進行迭代;如果沒有指定items,那麼就從begin開始迭代。它的類型爲整數。

l          end:如果指定了items,那麼就在items[end]結束迭代;如果沒有指定items,那麼就在end結束迭代。它的類型也爲整數。

l          step:迭代的步長。

 2. <c:if>; 它用來做條件判斷,功能類似jsp中的<%if(boolean){}%>

語法:
1
、無body的情況
       <c:if test=”testCondition” var=”varName” [scope=
“{page|request|session|application}”]/>

2、有body的情況

       <c:if test=”testCondition” var=”varName” [scope=“{page|request|session|application}”]>

              Body內容

</c:if>

3.<c:choose>;  它是用於條件選擇,和<c:when>,<c:otherwise>一起使用,它的條件選擇是排斥性的,相當於jsp中的<%switch(i){case 0: … case 1:… default :}%>,也可以完成<%if{}…else if{}….else if{} else{} %>的功能

語法:<c:choose>

                     Body內容(<c:when>,<c:otherwise>)

         </c:choose>

注意:它的body內容只能是由以下的元素組成:

1.         空格;

2.         0個或多個<c:when>子標籤,<c:when>必須在<c:otherwise>子標籤之前出現;

3.         0個或多個<c: otherwise >子標籤

 

4.<c:set>將某個變量存入page , request , session , application範圍的對象,或是設定JavaBean,Map的屬性,和值

1、使用value屬性設置一個特定範圍裏面的屬性:

<c:set value=”value”  var=”varName” [scope= “{page|request|session|application}”]/ >

2、使用value屬性設置一個特定範圍裏面的屬性,帶有BODY

<c:set value=”value”  var=”varName” [scope= “{page|request|session|application}”] >

       Body content

</c:set>

3、設置某個特定對象的一個屬性:

<c:set value=”value”  target=”target”  property=”propertyName”/ >

4、設置某個特定對象的一個屬性, 帶有BODY

<c:set value=”value”  target=”target”  property=”propertyName” >

       Body content

</c:set>

var 要設置的變量名

value 設置的值

target 要設置的JavaBean名稱,或Map名稱

property JavaBean的屬性或Mapkey

scope 變量所在的範圍

5.<c:remove>page , request , session , application範圍的對象內移除某個變量或屬性

語法:<c:remove var=”要移除的變量或屬性名稱
scope=”page | request | session | application” />

注意:如未指定scope屬性,則會同時從page , request , session , application範圍的對象內移除指定
的變量或屬性。

6.<c:out>將執行結果由JspWriter對象輸出

語法:<c:out value=”執行表達式的結果
escapeXml=”設定是否轉換XML的特殊字符true | false”
default=”如果value結果爲null或空字符串,則輸出default的值” />

7.<c:forTokens>針對某個字符串,由指定的字符爲標誌,依次取每個子串。

語法:<c:forTokens var=”存入當前的對象
items=”被處理的字符串
delims=”分隔子串的字符”>

         標籤主體

         </c:forTokens>

8.<c:url>指定或改寫某個URL

語法:<c:url vaule=”執行的URL”
context=”相同container的其它context”
var=”存入被引入的URL內容
scope=”範圍

      標籤主體,可以加入<c:param>標籤來指定參數

</c:url>

 

9.<c:import>導入其它網頁的內容,相當於<jsp:include>標準動作(於執行時期包含進來)

語法:<c:import url=”被包含進來的網址或文件
context=”相同container的其它context”
var=”url包含的內容
scope=”範圍
charEncoding=”被包含網站或文件的字符編碼”>

         標籤主體,可以加入<c:param>標籤來指定參數

         </c:import>

 

 

10.<c:redirect> 調用HttpServletResponsesendRedirect()方法,來重定向請求

語法:<c:import url=”重定向到的目標URI”
 標籤主體,可以加入<c:param>標籤來指定參數

         </c:redirect>

 

11.<c:param>傳入某個參數

語法:<c:param name=”屬性名稱” value=”屬性值” />

12.<c:catch>

它的作用是捕捉由嵌套在它裏面的標籤所拋出來的異常。類似於<%try{}catch{}%>,它的語法是:<c:catch [var=”varName”]>nested actions</c:catch>

舉例:c_catch.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<html>

<head>

  <title>JSTL:catch的使用</title>

</head>

<body bgcolor="#FFFFFF">

<c:catch var="error">

<%

  Integer.parseInt("sdkfj");

 %>

 </c:catch>

 <hr>異常:

 <c:out value="${error}"/>

 <hr>異常 exception.getMessage=

 <c:out value="${error.message}"/>

<hr> 異常exception.getCause=

 <c:out value="${error.cause}"/>

</body>

</html>

 

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