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技術網站

          友情鏈接

          國內一些開源網站

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 锡林浩特市| 内江市| 平陆县| 阿鲁科尔沁旗| 佛坪县| 涡阳县| 佛教| 武功县| 武宁县| 轮台县| 福建省| 濮阳县| 萍乡市| 大安市| 霍山县| 修文县| 安乡县| 武山县| 隆化县| 青神县| 平塘县| 罗定市| 翁牛特旗| 即墨市| 昌江| 贡山| 长葛市| 华亭县| 桓台县| 乌鲁木齐县| 普宁市| 稷山县| 滕州市| 广安市| 伊宁县| 周至县| 银川市| 沁水县| 云和县| 惠安县| 卢氏县|