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