EL
						
						表达式中还有许多操作符可以帮助完成各种所需的操作,之前的示例中“
						
								.
						
						”、“
						
								[]
						
						”就是其中的两个,下面将用表
						
								9.1
						
						来展示所有操作符及它们各自的功能。
						
								
								
						
				
				
						表
						
								9.1  EL
						
						表达式的操作符
						
								
								
						
				
				
						
								
										| 
														操作符
														
																
																
														
												 | 
														功能和作用
														
																
																
														
												 | 
								
										| 
														
																.
														
												 | 
														访问一个
														
																bean
														
														属性或者
														
																 Map entry
														
												 | 
								
										| 
														
																[]
														
												 | 
														访问一个数组或者链表元素
														
																
																
														
												 | 
								
										| 
														
																()
														
												 | 
														对子表达式分组,用来改变赋值顺序
														
																
																
														
												 | 
								
										| 
														
																? :
														
												 | 
														条件语句,比如:条件
														
																?ifTrue:ifFalse
														
												 
														如果条件为真,表达式值为前者,反之为后者
														
																
																
														
												 | 
								
										| 
														
																+
														
												 | 
														数学运算符,加操作
														
																
																
														
												 | 
								
										| 
														
																-
														
												 | 
														数学运算符,减操作或者对一个值取反
														
																
																
														
												 | 
								
										| 
														
																*
														
												 | 
														数学运算符,乘操作
														
																
																
														
												 | 
								
										| 
														
																/ 
														
														或
														
																 div
														
												 | 
														数学运算符,除操作
														
																
																
														
												 | 
								
										| 
														
																% 
														
														或
														
																 mod
														
												 | 
														数学运算符,模操作
														
																(
														
														取余
														
																)
														
												 | 
								
										| 
														
																== 
														
														或
														
																 eq
														
												 | 
														逻辑运算符,判断符号左右两端是否相等,如果相等返回
														
																true
														
														,否则返回
														
																false
														
												 | 
								
										| 
														
																!= 
														
														或
														
																 ne
														
												 | 
														逻辑运算符,判断符号左右两端是否不相等,如果不相等返回
														
																true
														
														,否则返回
														
																false
														
												 | 
								
										| 
														
																< 
														
														或
														
																 lt
														
												 | 
														逻辑运算符,判断符号左边是否小于右边,如果小于返回
														
																true
														
														,否则返回
														
																false
														
												 | 
								
										| 
														
																> 
														
														或
														
																 gt
														
												 | 
														逻辑运算符,判断符号左边是否大于右边,如果大于返回
														
																true
														
														,否则返回
														
																false
														
												 | 
								
										| 
														
																<= 
														
														或
														
																 le
														
												 | 
														逻辑运算符,判断符号左边是否小于或者等于右边,如果小于或者等于返回
														
																true
														
														,否则返回
														
																false
														
												 | 
								
										| 
														
																>= 
														
														或
														
																 ge
														
												 | 
														逻辑运算符,判断符号左边是否大于或者等于右边,如果大于或者等于返回
														
																true
														
														,否则返回
														
																false
														
												 | 
								
										| 
														
																&& 
														
														或
														
																 and
														
												 | 
														逻辑运算符,与操作赋。如果左右两边同为
														
																true
														
														返回
														
																true
														
														,否则返回
														
																false
														
												 | 
								
										| 
														
																|| 
														
														或
														
																 or
														
												 | 
														逻辑运算符,或操作赋。如果左右两边有任何一边为
														
																true
														
														返回
														
																true
														
														,否则返回
														
																false
														
												 | 
								
										| 
														
																! 
														
														或
														
																 not
														
												 | 
														逻辑运算符,非操作赋。如果对
														
																true
														
														取运算返回
														
																false
														
														,否则返回
														
																true
														
												 | 
								
										| 
														
																empty
														
												 | 
														用来对一个空变量值进行判断
														
																: null
														
														、一个空
														
																String
														
														、空数组、
														
																
																
														
														空
														
																Map
														
														、没有条目的
														
																Collection
														
														集合
														
																
																
														
												 | 
								
										| 
														
																func(args)
														
												 | 
														调用方法
														
																, func
														
														是方法名,
														
																args
														
														是参数,可以没有,或者有一个、多个参数
														
																.
														
														参数间用逗号隔开
														
																
																
														
												 | 
						
				
				
						这些操作符都是极其有用的,下面通过几个示例来演示它们的使用方法:
						
								
								
						
				
				
						例
						
								9.4
						
						:几组操作符的示例
						
								
								
						
				
				
						
								
										${pageScope.sampleValue + 12} <br>            //
								
								显示
								
										12
								
						
				
				
						
								
										${(pageScope.sampleValue + 12)/3} <br>      //
								
								显示
								
										4.0
								
						
				
				
						
								
										${(pageScope.sampleValue + 12) /3==4} <br>         //
								
								显示
								
										true
								
						
				
				
						
								
										${(pageScope.sampleValue + 12) /3>=5} <br>         //
								
								显示
								
										false
								
						
				
				
						
								
										<input type="text" name="sample1" value="${pageScope.sampleValue + 10}"> //
								
								显示值为
								
										10
								
								的
								
										Text
								
								控件
								
										
										
								
						
				
				
						可以看到,对于这些示例,程序设计者完全无需管理它们的类型转换,在表达式内部都已经处理了。有了
						
								EL
						
						表达式,在
						
								JSP
						
						页面的编程变得更灵活,也更容易。
						
								
								
						
				
				
				
						在
						
								JSTL1.1
						
						中有以下这些标签库是被支持的:
						
								Core
						
						标签库、
						
								XML processing
						
						标签库、
						
								I18N formatting
						
						标签库、
						
								Database access
						
						标签库、
						
								Functions
						
						标签库。对应的标识符见表
						
								9.2
						
						所示:
						
								
								
						
				
				
						表
						
								9.2 
						
						标签库的标识符
						
								
								
						
				
				
						
								
										
												| 
																标签库
																
																		
																		
																
														 | 
																
																		URI
																
														 | 
																前缀
																
																		
																		
																
														 | 
										
												| 
																
																		Core
																
														 | 
																
																		http://java.sun.com/jsp/jstl/core
																
														 | 
																
																		c
																
														 | 
										
												| 
																
																		XML processing
																
														 | 
																
																		http://java.sun.com/jsp/jstl/xml
																
														 | 
																
																		x
																
														 | 
										
												| 
																
																		I18N formatting
																
														 | 
																
																		http://java.sun.com/jsp/jstl/fmt
																
														 | 
																
																		fmt
																
														 | 
										
												| 
																
																		Database access
																
														 | 
																
																		http://java.sun.com/jsp/jstl/sql
																
														 | 
																
																		sql
																
														 | 
										
												| 
																
																		Functions
																
														 | 
																
																		http://java.sun.com/jsp/jstl/functions
																
														 | 
																
																		fn
																
														 | 
								
						
				 
				
						下面看例
						
								9.5
						
						,简单使用标签库的示例。
						
								
								
						
				
				
						例
						
								9.5
						
						:简单
						
								JSTL
						
						标签库示例
						
								
								
						
				
				
						
								
										<%@ page contentType="text/html; charset=UTF-8"%>
								
						
				
				
						
								
										<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
								
						
				
				
						
								
										<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
								
						
				
				
						
								
										<html>
								
						
				
				
						
								
										
												  <body>
								
						
				
				
						
								
										
												    <c:forEach var="i" begin="1" end="10" step="1">
								
						
				
				
						
								
										
												      ${i}
								
						
				
				
						
								
										
												      <br />
								
						
				
				
						
								
										
												    </c:forEach>
								
						
				
				
						
								
										
												  </body>
								
						
				
				
						
								
										</html>
								
						
				
				
						在该示例的
						
								JSP
						
						页面中声明了将使用
						
								Core
						
						标签库,它的
						
								URI
						
						为“
						
								http://java.sun.com/jsp/jstl/core
						
						”,前缀为“
						
								c
						
						”。之后,页面中
						
								<c:forEach>
						
						标签就是使用了
						
								JSTL
						
						的标签进行了工作。对于该标签的功能,这里暂时不作具体讲解,只是让读者能够有个简单的概念,了解怎样定义和使用标签库。
						
								
								
						
				
				
				
						
								Core
						
						标签库,又被称为核心标签库,该标签库的工作是对于
						
								JSP
						
						页面一般处理的封装。在该标签库中的标签一共有
						
								14
						
						个,被分为了四类,分别是:
						
								
								
						
				
				
						
								q         
						
						多用途核心标签:
						
								<c:out>
						
						、
						
								<c:set>
						
						、
						
								<c:remove>
						
						、
						
								<c:catch>
						
						。
						
								
								
						
				
				
						
								q         
						
						条件控制标签:
						
								<c:if>
						
						、
						
								<c:choose>
						
						、
						
								<c:when>
						
						、
						
								<c:otherwise>
						
						。
						
								
								
						
				
				
						
								q         
						
						循环控制标签:
						
								<c:forEach>
						
						、
						
								<c:forTokens>
						
						。
						
								
								
						
				
				
						
								q         
						
						
								URL
						
						相关标签:
						
								<c:import>
						
						、
						
								<c:url>
						
						、
						
								<c:redirect>
						
						、
						
								<c:param>
						
						。
						
								
								
						
				
				
						以下是各个标签的用途和属性以及简单示例。
						
								
								
						
				
				
						
						
						
						
						
								
										
												
														
																9.3.1  
														
												
										
								
						
						
								
										
												用于显示的
										
								
						
						
								
										
												
														<c:out>
												
										
								
						
						
								
										
												标签
										
								
						
						
						
						
						
						
						
						
								
										
										
								
						
				
				
						
								<c:out>
						
						标签是一个最常用的标签,用于在
						
								JSP
						
						中显示数据。它的属性和描述如表
						
								9.3
						
						所示:
						
								
								
						
				
				
						表
						
								9.3
						
						 
						
								<c:out>
						
						标签属性和说明
						
								
								
						
				
				
						
								
										
												| 
																属性
																
																		
																		
																
														 | 
																描述
																
																		
																		
																
														 | 
										
												| 
																
																		value
																
														 | 
																输出到页面的数据,可以是
																
																		EL
																
																表达式或常量(必须)
																
																		
																		
																
														 | 
										
												| 
																
																		default
																
														 | 
																当
																
																		value
																
																为
																
																		null
																
																时显示的数据(可选)
																
																		
																		
																
														 | 
										
												| 
																
																		escapeXml
																
														 | 
																当设置为
																
																		true
																
																时会主动更换特殊字符,比如“
																
																		<,>,&
																
																”(可选,默认为
																
																		true
																
																)
																
																		
																		
																
														 | 
								
						
				 
				
						在
						
								JSTL1.0
						
						的时候,在页面显示数据必须使用
						
								<c:out>
						
						来进行。然而,在
						
								JSTL1.1
						
						中,由于
						
								JSP2.0
						
						规范已经默认支持了
						
								EL
						
						
								
										表达式
								,因此可以直接在
						
								JSP
						
						页面使用表达式。下面看一个示例。
						
								
								
						
				
				
						
								
										<c:out value="${sessionScope.anyValue}" default="no value" escapeXml="false"/>
								
						
				
				
						该示例将从
						
								Session
						
						查找名为“
						
								anyValue
						
						”的参数,并显示在页面,若没有找到则显示“
						
								no value
						
						”。