scope
</td>
|
變量的作用范圍,若沒有指定,默認為保存于page范圍中的變量(可選)
</td>
</tr>
</tbody>
</table>
下面看一個示例:
<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>標簽屬性和說明
屬性
</td>
|
描述
</td>
</tr>
|
items
</td>
|
進行循環的集合(可選)
</td>
</tr>
|
begin
</td>
|
開始條件(可選)
</td>
</tr>
|
end
</td>
|
結束條件(可選)
</td>
</tr>
|
step
</td>
|
循環的步長,默認為1(可選)
</td>
</tr>
|
var
</td>
|
做循環的對象變量名,若存在items屬性,則表示循環集合中對象的變量名(可選)
</td>
</tr>
|
varStatus
</td>
|
顯示循環狀態的變量(可選)
</td>
</tr>
</tbody>
</table>
下面看一個集合循環的示例。
<%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>標簽屬性和說明
屬性
</td>
|
描述
</td>
</tr>
|
items
</td>
|
進行分隔的EL表達式或常量
</td>
</tr>
|
delims
</td>
|
分隔符
</td>
</tr>
|
begin
</td>
|
開始條件(可選)
</td>
</tr>
|
end
</td>
|
結束條件(可選)
</td>
</tr>
|
step
</td>
|
循環的步長,默認為1(可選)
</td>
</tr>
|
var
</td>
|
做循環的對象變量名(可選)
</td>
</tr>
|
varStatus
</td>
|
顯示循環狀態的變量(可選)
</td>
</tr>
</tbody>
</table>
下面看一個示例。
<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 cc”。
9.3.9 用于包含頁面的<c:import>
<c:import>標簽允許包含另一個JSP頁面到本頁面來。它的屬性和描述如表9.9所示:
表9.9 <c:import>標簽屬性和說明
屬性
</td>
|
描述
</td>
</tr>
|
url
</td>
|
需要導入頁面的URL
</td>
</tr>
|
context
</td>
|
Web Context該屬性用于在不同的Context下導入頁面,當出現context屬性時,必須以“/”開頭,此時也需要url屬性以“/”開頭(可選)
</td>
</tr>
|
charEncoding
</td>
|
導入頁面的字符集(可選)
</td>
</tr>
|
var
</td>
|
可以定義導入文本的變量名(可選)
</td>
</tr>
|
scope
</td>
|
導入文本的變量名作用范圍(可選)
</td>
</tr>
|
varReader
</td>
|
接受文本的java.io.Reader類變量名(可選)
</td>
</tr>
</tbody>
</table>
下面看一個示例。
<c:import url="/MyHtml.html" var="thisPage" />
<c:import url="/MyHtml.html" context=”/sample2” var="thisPage"/>
<c:import url="www.sample.com/MyHtml.html" var="thisPage"/>
該示例演示了三種不同的導入方法,第一種是在同一Context下的導入,第二種是在不同的Context下導入,第三種是導入任意一個URL。
9.3.10 用于得到URL地址的<c:url>標簽
<c:url>標簽用于得到一個URL地址。它的屬性和描述如表9.10所示:
表9.10 <c:url>標簽屬性和說明
屬性
</td>
|
描述
</td>
</tr>
|
value
</td>
|
頁面的URL地址
</td>
</tr>
|
context
</td>
|
Web Context該屬性用于得到不同Context下的URL地址,當出現context屬性時,必須以“/”開頭,此時也需要url屬性以“/”開頭(可選)
</td>
</tr>
|
charEncoding
</td>
|
URL的字符集(可選)
</td>
</tr>
|
var
</td>
|
存儲URL的變量名(可選)
</td>
</tr>
|
scope
</td>
|
變量名作用范圍(可選)
</td>
</tr>
</tbody>
</table>
下面看一個示例:
<c:url value="/MyHtml.html" var="urlPage" />
<a href="${urlPage}">link</a>
得到了一個URL后,以EL表達式放入<a>標簽的href屬性,達到鏈接的目的。
9.3.11 用于頁面重定向的<c:redirect>標簽
<c:redirect>用于頁面的重定向,該標簽的作用相當于response.setRedirect方法的工作。它包含url和context兩個屬性,屬性含義和<C:url>標簽相同。下面看一個示例。
<c:redirect url="/MyHtml.html"/>
該示例若出現在JSP中,則將重定向到當前Web Context下的“MyHtml.html”頁面,一般會與<c:if>等標簽一起使用。
9.3.12 用于包含傳遞參數的<c:param>標簽
<c:param>用來為包含或重定向的頁面傳遞參數。它的屬性和描述如表9.11所示:
表9.11 <c:param>標簽屬性和說明
| | | | |