一 JSTL 使用配置总结
1.web.xml 版本为 2.3 版本的配置
引用文档 :http://blog.csdn.net/tiancaoyan/archive/2009/06/10/4256637.aspx
使用环境 : WebLogic92 + JDK1.5,web.xml 版本为 2.3, 文件是如下表示 :
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
使用步骤 :
l 拷贝jstl.jar,standard.jar 文件到Web-INF/lib 目录下
l 在引用 JSP 页面加上 : <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
l 如 web.xml 版本为 2.3, 还要在加上 : <%@ page isELIgnored="false"%>
2 web.xml 版本为 2.4 的配置
< web-app version = "2.4"
xmlns = "http://java.sun.com/xml/ns/j2ee"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
l 拷贝 jstl.jar,standard.jar 文件到 Web-INF/lib 目录下
l 在引用 JSP 页面加上 : <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3 web.xml 版本为 2.5 的配置
在 J2EE5.0 中已经将 JSTL 纳入标准规范 , 将 jstl.jar,standard.jar 二个 jar 文件合并为 jstl1.2.jar.
< web-app version = "2.5"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
l 在引用 JSP 页面加上 : <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
以上的 web.xml 各个版本在 Tomcat6.0.24 下也能正常显示 .
二 JSTL 使用示例
JSTL 获取值范围 .
引用文档 :http://blog.csdn.net/tiancaoyan/archive/2009/06/10/4256637.aspx
一个EL 表达式包含变量和操作符。任何存储在某个JSP 作用范围( 如:page 、 request 、session 、application)的bean 能被作为一个EL 变量来使用。另外,EL 支持以下预定义的变量:
变量名称
| 说明 |
pageScope | 一个包含所有page scope 范围的变量集合 (a java.util.Map)
|
requestScope
| 一个包含所有request scope 范围的变量集合 (a java.util.Map)
|
sessionScope
| 一个包含所有session scope 范围的变量集合 (a java.util.Map)
|
applicationScope
| 一个包含所有application scope 范围的变量集合 (a java.util.Map) |
param
| 一个包含所有请求参数的集合 (a java.util.Map) ,通过每个参数对应一个String 值的方式赋值
|
paramValues
| 一个包含所有请求参数的集合 (a java.util.Map) ,通过每个参数对应一个String 数组的方式赋值
|
header
| 一个包含所有请求的头信息的集合, (a java.util.Map) , 通过每个头信息对应一个String 值的方式赋值
|
headerValues
| 一个包含所有请求的头信息的集合 (a java.util.Map) ,通过每个头信息的值都保存在一个String 数组的方式赋值
|
cookie
| 一个包含所有请求的 cookie 集合 (a java.util.Map) , 通过每一个cookie (javax.servlet.http.Cookie )对应一个cookie 值的方式赋值
|
initParam
| 一个包含所有应用程序初始化参数的集合(a java.util.Map) ,通过每个参数分别对应一个String 值的方式赋值
|
pageContext
| 一个javax.servlet.jsp.PageContext 类的实例, 用来提供访问不同的请求数据
|
操作符描述了你对变量所期望的操作。如果你之前曾经使用过任何编程语言的话,在EL 表达式中所使用的操作符对你来说可能看起来很熟悉。因为它们和那些在大多数语言中所支持的操作符一样。
.
访问一个bean 属性或者 Map entry
[]
访问一个数组或者链表元素
()
对子表达式分组,用来改变赋值顺序
? :
条件语句,比如: 条件 ? ifTrue : ifFalse. 如果条件为真,表达式值为前者,反之为后者
+
数学运算符,加操作
-
数学运算符,减操作或者对一个值取反
*
数学运算符,乘操作
/ or div
数学运算符,除操作
% or mod
数学运算符,模操作( 取余)
== or eq
逻辑运算符,判断符号左右两端是否相等,如果相等返回true ,否则返回false
!= or ne
逻辑运算符,判断符号左右两端是否不相等,如果不相等返回true ,否则返回false
< or lt
逻辑运算符,判断符号左边是否小于右边,如果小于返回true ,否则返回false
> or gt
逻辑运算符,判断符号左边是否大于右边,如果大于返回true ,否则返回false
<= or le
逻辑运算符,判断符号左边是否小于或者等于右边,如果小于或者等于返回true ,否则返回false
>= or ge
逻辑运算符,判断符号左边是否大于或者等于右边,如果大于或者等于返回true ,否则返回false
&& or and
逻辑运算符,与操作赋。如果左右两边同为true 返回true ,否则返回false
|| or or
逻辑运算符,或操作赋。如果左右两边有任何一边为true 返回true ,否则返回false
! or not
逻辑运算符,非操作赋。如果对true 取运算返回false ,否则返回true
empty
用来对一个空变量值进行判断: null 、一个空String 、空数组、空Map 、没有条目的Collection 集合
func(args)
调用方法, func 是方法名,args 是参数,可以没有,或者有一个、多个参数. 参数间用逗号隔开
一个EL 表达式可以包含:数字、文本(在单引号或者双引号之间)、布尔值、null 值。
1 获取单个对象
<%request.setAttribute(“username”,”david”)%>
${requestScope.userName}
2 遍历Map 类型
<%
Hashtable hashtable1 = new Hashtable();
hashtable1.put( new Integer(1), "uno" );
hashtable1.put( new Integer(2), "dos" );
hashtable1.put( new Integer(3), "tres" );
request.setAttribute( "numberMap" , hashtable1);
//JSTL 最好指定范围访问值 :
// ${sessionScope. numberMap2} , ${ applicationScope. numberMap2}.
request.getSession().setAttribute( "numberMap2" ,hashtable1); request.getSession()
.getServletContext().setAttribute( "numberMap3" ,hashtable1);
%>
< c:forEach var = "month" items = "${numberMap} ">
< li >
${month.key} , ${month.value}
</ li >
</ c:forEach >
各JSTL相关引用标记
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/xml" prefix = "x" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/fmt" prefix = "f" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/sql" prefix = "sql" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/functions" prefix = "fn" %>