JSTL使用配置
一 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">
使用步骤:
<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">???
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">
以上的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"%>
?
?
?