读书人

JSTL运用配置

发布时间: 2012-11-25 11:44:31 作者: rapoo

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"%>

?

?

?

读书人网 >JavaScript

热点推荐