JSTL詳解(三)

          9.3.2? 用于賦值的 <c:set> 標簽

          <c:set> 標簽用于為變量或 JavaBean 中的變量屬性賦值的工作。它的屬性和描述如表 9.4 所示:

          9.4   <c:set> 標簽屬性和說明

          屬性

          描述

          value

          值的信息,可以是 EL 表達式或常量

          target

          被賦值的 JavaBean 實例的名稱,若存在該屬性則必須存在 property 屬性(可選)

          property

          JavaBean 實例的變量屬性名稱(可選)

          var

          被賦值的變量名(可選)

          scope

          變量的作用范圍,若沒有指定,默認為 page (可選)

          當不存在 value 的屬性時,將以包含在標簽內的實體數據作為賦值的內容。下面看一個示例:

          <c:set value="this is andy" var="oneString"/>

          ${oneString} <br>

          該示例將為名為“ oneString ”的變量賦值為“ this is andy ”,其作用范圍為 page

          9.3.3? 用于刪除的 <c:remove> 標簽

          <c:remove> 標簽用于刪除存在于 scope 中的變量。它的屬性和描述如表 9.5 所示:

          9.5   <c:remove> 標簽屬性和說明

          屬性

          描述

          var

          需要被刪除的變量名

          scope

          變量的作用范圍,若沒有指定,默認為全部查找(可選)

          下面看一個示例:

          <c:remove var="sampleValue" scope="session"/>

          ${sessionScope.sampleValue} <br>

          該示例將存在于 Session 中名為“ sampleValue ”的變量刪除。下一句 EL 表達式顯示該變量時,該變量已經不存在了。

          9.3.4? 用于異常捕獲的 <c:catch> 標簽

          <c:catch> 標簽允許在 JSP 頁面中捕捉異常。它包含一個 var 屬性,是一個描述異常的變量,改變量可選。若沒有 var 屬性的定義,那么僅僅捕捉異常而不做任何事情,若定義了 var 屬性,則可以利用 var 所定義的異常變量進行判斷轉發到其他頁面或提示報錯信息。看一個示例。

          <c:catch var="err">

          ???????? ${param.sampleSingleValue[9] == 3}

          </c:catch>

          ${err}

          當“ ${param.sampleSingleValue[9] == 3} ”表達式有異常時,可以從 var 屬性“ err ”得到異常的內容,通常判斷“ err ”是否為 null 來決定錯誤信息的提示。

          9.3.5? 用于判斷的 <c:if> 標簽

          <c:if> 標簽用于簡單的條件語句。它的屬性和描述如表 9.6 所示:

          9.6   <c:if> 標簽屬性和說明

          屬性

          描述

          test

          需要判斷的條件

          var

          保存判斷結果 true false 的變量名,該變量可供之后的工作使用(可選)

          scope

          變量的作用范圍,若沒有指定,默認為保存于 page 范圍中的變量(可選)

          下面看一個示例:

          <c:if test="${paramValues.sampleValue[2] == 12}" var="visits">

          ?? ?? It is 12

          </c:if><br>

          ${visits} <br>

          該示例將判斷 request 請求提交的傳入控件數組參數中,下標為“ 2 ”的控件內容是否為“ 12 ”,若為 12 則顯示“ It is 12 ”。判斷結果被保存在 page 范圍中的“ visits ”變量中。  

          9.3.6? 用于復雜判斷的 <c:choose> <c:when> <c:otherwise> 標簽

          這三個標簽用于實現復雜條件判斷語句,類似“ if,elseif ”的條件語句。

          q???????? <c:choose> 標簽沒有屬性,可以被認為是父標簽, <c:when> <c:otherwise> 將作為其子標簽來使用。

          q???????? <c:when> 標簽等價于“ if ”語句,它包含一個 test 屬性,該屬性表示需要判斷的條件。

          q???????? <c:otherwise> 標簽沒有屬性,它等價于“ else ”語句。

          下面看一個復雜條件語句的示例。

          <c:choose>

          ???????? <c:when test="${paramValues.sampleValue[2] == 11}">

          ?????????????????? not 12 not 13,it is 11

          ???????? </c:when>

          ???????? <c:when test="${paramValues.sampleValue[2] == 12}">

          ?????????????????? not 11 not 13,it is 12

          ???????? </c:when>

          ???????? <c:when test="${paramValues.sampleValue[2] == 13}">

          ?????????????????? not 11 not 12,it is 13

          ???????? </c:when>

          ???????? <c:otherwise>

          ?????????????????? not 11 12 13

          ???????? </c:otherwise>

          </c:choose>

          該示例將判斷 request 請求提交的傳入控件數組參數中,下標為“ 2 ”控件內容是否為“ 11 ”或“ 12 ”或“ 13 ”,并根據判斷結果顯示各自的語句,若都不是則顯示“ not 11 12 13 ”。

          9.3.7? 用于循環的 <c:forEach> 標簽

          <c:forEach> 為循環控制標簽。它的屬性和描述如表 9.7 所示:

          9.7   <c:forEach> 標簽屬性和說明

          屬性

          描述

          items

          進行循環的集合(可選)

          begin

          開始條件(可選)

          end

          結束條件(可選)

          step

          循環的步長,默認為 1 (可選)

          var

          做循環的對象變量名,若存在 items 屬性,則表示循環集合中對象的變量名(可選)

          varStatus

          顯示循環狀態的變量(可選)

          下面看一個集合循環的示例。

          <%ArrayList arrayList = new ArrayList();

          ?????????????????? arrayList.add("aa");

          ?????????????????? arrayList.add("bb");

          ?????????????????? arrayList.add("cc");

          %>

          <%request.getSession().setAttribute("arrayList", arrayList);%>

          <c:forEach items="${sessionScope.arrayList}" var="arrayListI">

          ???????? ${arrayListI}

          </c:forEach>

          該示例將保存在 Session 中的名為“ arrayList ”的 ArrayList 類型集合參數中的對象依次讀取出來, items 屬性指向了 ArrayList 類型集合參數, var 屬性定義了一個新的變量來接收集合中的對象。最后直接通過 EL 表達式顯示在頁面上。下面看一個簡單循環的示例。

          <c:forEach var="i" begin="1" end="10" step="1">

          ????? ${i}<br />

          </c:forEach>

          示例從“ 1 ”循環到“ 10 ”,并將循環中變量“ i ”顯示在頁面上。

          9.3.8? 用于分隔字符的 <c:forTokens> 標簽

          <c:forTokens> 標簽可以根據某個分隔符分隔指定字符串,相當于 java.util.StringTokenizer 類。它的屬性和描述如表 9.8 所示:

          9.8   <c:forTokens> 標簽 屬性和說明

          屬性

          描述

          items

          進行分隔的 EL 表達式或常量

          delims

          分隔符

          begin

          開始條件(可選)

          end

          結束條件(可選)

          step

          循環的步長,默認為 1 (可選)

          var

          做循環的對象變量名(可選)

          varStatus

          顯示循環狀態的變量(可選)

          下面看一個示例。

          <c:forTokens items="aa,bb,cc,dd" begin="0" end="2" step="2" delims="," var="aValue">

          ???????? ${aValue}

          </c:forTokens>

          需要分隔的字符串為“ aa,bb,cc,dd ”,分隔符為“ , ”。 begin 屬性 指定從第一個“ , ”開始分隔, end 屬性指定分隔到第三個“ , ”,并將做循環的變量名指定為“ aValue ”。由于步長為“ 2 ”,使用 EL 表達式 ${aValue} 只能顯示“ aa



          posted on 2007-01-18 11:25 nbt 閱讀(3380) 評論(0)  編輯  收藏 所屬分類: Servele&JSP和js

          <2007年1月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java技術網站

          友情鏈接

          國內一些開源網站

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 承德县| 高安市| 德阳市| 连云港市| 巩留县| 临漳县| 黔江区| 仙居县| 安西县| 喜德县| 霍邱县| 犍为县| 绍兴县| 潜江市| 兴和县| 洪湖市| 古浪县| 华亭县| 迭部县| 寻甸| 隆化县| 津南区| 龙江县| 晋江市| 故城县| 中卫市| 龙门县| 饶平县| 永城市| 荆门市| 大石桥市| 乌拉特后旗| 尤溪县| 会宁县| 丘北县| 余干县| 崇信县| 泰宁县| 南丰县| 湖北省| 北流市|