|
<c:set>標(biāo)簽用于為變量或JavaBean中的變量屬性賦值的工作。它的屬性和描述如表9.4所示: 表9.4 <c:set>標(biāo)簽屬性和說明
當(dāng)不存在value的屬性時(shí),將以包含在標(biāo)簽內(nèi)的實(shí)體數(shù)據(jù)作為賦值的內(nèi)容。下面看一個(gè)示例: <c:set value="this is andy" var="oneString"/> ${oneString} <br> 該示例將為名為“oneString”的變量賦值為“this is andy”,其作用范圍為page。 9.3.3 用于刪除的<c:remove>標(biāo)簽
<c:remove>標(biāo)簽用于刪除存在于scope中的變量。它的屬性和描述如表9.5所示: 表9.5 <c:remove>標(biāo)簽屬性和說明
下面看一個(gè)示例: <c:remove var="sampleValue" scope="session"/> ${sessionScope.sampleValue} <br> 該示例將存在于Session中名為“sampleValue”的變量刪除。下一句EL表達(dá)式顯示該變量時(shí),該變量已經(jīng)不存在了。 9.3.4 用于異常捕獲的<c:catch>標(biāo)簽
<c:catch>標(biāo)簽允許在JSP頁(yè)面中捕捉異常。它包含一個(gè)var屬性,是一個(gè)描述異常的變量,改變量可選。若沒有var屬性的定義,那么僅僅捕捉異常而不做任何事情,若定義了var屬性,則可以利用var所定義的異常變量進(jìn)行判斷轉(zhuǎn)發(fā)到其他頁(yè)面或提示報(bào)錯(cuò)信息??匆粋€(gè)示例。 <c:catch var="err"> ${param.sampleSingleValue[9] == 3} </c:catch> ${err} 當(dāng)“${param.sampleSingleValue[9] == 3}”表達(dá)式有異常時(shí),可以從var屬性“err”得到異常的內(nèi)容,通常判斷“err”是否為null來決定錯(cuò)誤信息的提示。 9.3.5 用于判斷的<c:if>標(biāo)簽
<c:if>標(biāo)簽用于簡(jiǎn)單的條件語句。它的屬性和描述如表9.6所示: 表9.6 <c:if>標(biāo)簽屬性和說明
下面看一個(gè)示例: <c:if test="${paramValues.sampleValue[2] == 12}" var="visits"> It is 12 </c:if><br> ${visits} <br> 該示例將判斷request請(qǐng)求提交的傳入控件數(shù)組參數(shù)中,下標(biāo)為“2”的控件內(nèi)容是否為“12”,若為12則顯示“It is 12”。判斷結(jié)果被保存在page范圍中的“visits”變量中?! ?/span> 9.3.6 用于復(fù)雜判斷的<c:choose>、<c:when>、<c:otherwise>標(biāo)簽
這三個(gè)標(biāo)簽用于實(shí)現(xiàn)復(fù)雜條件判斷語句,類似“if,elseif”的條件語句。 q <c:choose>標(biāo)簽沒有屬性,可以被認(rèn)為是父標(biāo)簽,<c:when>、<c:otherwise>將作為其子標(biāo)簽來使用。 q <c:when>標(biāo)簽等價(jià)于“if”語句,它包含一個(gè)test屬性,該屬性表示需要判斷的條件。 q <c:otherwise>標(biāo)簽沒有屬性,它等價(jià)于“else”語句。 下面看一個(gè)復(fù)雜條件語句的示例。 <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請(qǐng)求提交的傳入控件數(shù)組參數(shù)中,下標(biāo)為“2”控件內(nèi)容是否為“11”或“12”或“13”,并根據(jù)判斷結(jié)果顯示各自的語句,若都不是則顯示“not 11 、12、13”。 9.3.7 用于循環(huán)的<c:forEach>標(biāo)簽
<c:forEach>為循環(huán)控制標(biāo)簽。它的屬性和描述如表9.7所示: 表9.7 <c:forEach>標(biāo)簽屬性和說明
下面看一個(gè)集合循環(huán)的示例。 <%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類型集合參數(shù)中的對(duì)象依次讀取出來,items屬性指向了ArrayList類型集合參數(shù),var屬性定義了一個(gè)新的變量來接收集合中的對(duì)象。最后直接通過EL表達(dá)式顯示在頁(yè)面上。下面看一個(gè)簡(jiǎn)單循環(huán)的示例。 <c:forEach var="i" begin="1" end="10" step="1"> ${i}<br /> </c:forEach> 該 9.3.8 用于分隔字符的<c:forTokens>標(biāo)簽
<c:forTokens>標(biāo)簽可以根據(jù)某個(gè)分隔符分隔指定字符串,相當(dāng)于java.util.StringTokenizer類。它的屬性和描述如表9.8所示: 表9.8 <c:forTokens>
下面看一個(gè)示例。 <c:forTokens items="aa,bb,cc,dd" begin="0" end="2" step="2" delims="," var="aValue"> ${aValue} </c:forTokens> 需要分隔的字符串為“aa,bb,cc,dd”, |
|
|