一.JSTL简介
JSTL全名为JSP Standard Tag Libaray(JSP标准标签函数库),目前最新的版本为
1.1,它是由JCP(Java Commnunity Process)制定的标准规范,提供给我们一个标准通用的
标签函数库.主要分为5大类:
(1)核心标签库(Core)
(2)I18N格式标签库(I18N-capable format tab libaray)
(3)SQL标签库(SQL tag libaray)
(4)XML标签库(XML tag libaray)
(5)函数标签库(Functions tag libaray)
二.使用JSTL的好处
Web程序员能供利用JSTL和EL来开发Web程序,取代传统直接的在页面上脚本的方式
(scriplet),提高程序的可读性,易如维护,和开发。使得在视图页面上基本不用使用
脚本代码的,从而页面设计人员和标签的功能开发人员分离,甚至页面设计人员不用学
习JSP脚本语言
三.前提条件:
JSTL1.1必须在Servlet2.4和JSP2.0以上的容器才能正常工作
下载JSTL1.1
地址:http://jakarta.apache.org/builds/jakata-tablibs/releases/standard/
MyEclipse5.1以后的版本自带了JSTL1.1
下载后把jstl.jar,standard.jar复制到你的web工程/WEB-INF/lib/目录下,还有这
些标签库描述文件:c-1_0-rt.tld,c-1_0.tld,c.tld等等
在jsp页面中添加
<%@ taglib uri=“uri” prefix=“prefix” %>
四.核心标签库(CTL)
功能表:
分类
功能分类
标签名称
Core
表达式操作
out、set、remove、catch
流程控制
if、choose、when、otherwise
迭代操作
forEach
forTokens
URL操作
import param
url param
redirect param
下面我们来具体看看:
* 表达式操作
1.< c:out value=“${value}” [escapeXml=“true | false”]
[default=“defaultvalue”] />
用途:页面写(出入)数据
属性:
value 显示得值,它是object类型,可以为EL
escapeXml 是否是使用转换符号,比如:< (<) 、 > ($gt)等等
default 设置默认值
2.< c:set>
< c:set value=“${value}” var=“unable-EL” scope=“unable-EL”
target=“${target}” property=“${property}” />
用途:变量设置
属性:
value 设置变量的值、Object类型
var 设置变量的名称、String类型、不能为EL表达式
scope 设置变量的范围、String类型、不能为EL表达式、默认值:page、
可为application,session,request
target 查找的JavaBean或java.util.Map对象,Object
property targer指定的对象的属性
3.< c:remove>
< c:remove var=“variable” scope=“page | application | session
| request”/>
用途:变量容器去变量
属性(均不能为EL):
scope 变量存储的范围
var 为变量名称
4.< c:catch [var=“variable”] />
用途:捕捉异常
属性:
var :用类存储错误信息的变量
* 流程控制
1.< c:if test=“${value1 == value2}” var=“save_test_result” scope=“
application | request | ….” />
判断语句
属性:
test 为Boolean类型、逻辑表达式结果
var 为String类型,保存test的结果,为”true”|”false”
scope 为String类型、变量var的存储范围
2.< c:choose>
为< c:when>、< c:otherwise>的父标签
主题内容(BodyContent)
1或多个< c:when>
0或多个< c:otherwise>
例如:
< c:choose>
< c:when/>
< c:otherwise>
< c:when/>
< /c:choose>
3.< c:when>
用法和< c:if>差不多,但是它必须在< c:otherwise>之前(相当于if必须
在else之前)
属性:
test 和c:if test属性一样
4.< c:otherwise>
相当于else语句,当<c:when>的条件不成立时,运行其主题内容
比如:
< c:when test=“${user.role == “admin”}” >
< c:out value=“你好管理员先生:${user.name}”/>
< /c:when>
< c:otherwise >
<c:out value=“你好!”/>
< /c:otherwise>
* 迭代操作
1.< c:forEach var=“unable-el” item=“Collection” [varStatus=
“unable-el”] [begin=“begin-index”] [end=“end-index”] [step=“step-
length”]>
在Collection对象中迭代操作
属性:
var: 变量名称,String类型,不能为EL
Item:Collection对象, 可以为EL
varStatus:变量的成员信息,String类型,不能为EL
begin:迭代时候的变量开始位置,int类型,默认值:0
end:迭代时候的变量结束位置,int类型
step:为步长,int类型,默认值为1
2.< c:forTokens item=“StringTokens” delims=“delimiters” [var=
“variableName”] [varStatuts=“uanble-el”] [begin=“begin-index”] [end=
“end-index”] [step=“step-length”] >BodyContent< /c:forTokens>
从StringToken利用界定符号迭代
属性:
var: 变量名称,String类型,不能为EL
Item:String对象,多为正则表达式, 可以为EL
varStatus:变量的成员信息,String类型,不能为EL
begin:迭代时候的变量开始位置,int类型,默认值:0
end:迭代时候的变量结束位置,int类型
step:为步长,int类型,默认值为1
* URL操作
1.BodyContent
用于把其他静态或动态的文件包含至本身的JSP页面。又区别于,他不但能够包含自身web
应用程序的文件,还能够 包含不同的web应用程序的的文件。
属性
uri 文件包含的地址 String类型
context 在相同容器下,不同的web站台必须”/”开头,String类型
var: 变量名称,存储文件中的内容,String类型,不能为EL
scope 为String类型、变量var的存储范围,不能为EL
charEncoding 文件内容的编码 String类型
varReader 以Reader对象的形式存储文件中的内容,不能为EL
2.< c:param name=“${name}” value=“${param.name}” />
请求中的参数
属性:
name : 参数名称 ,String类型
value : 对应参数的值
比如:
< c:import url=“www.xxxx.com “ >
<c:param name=“name” value=“yourname” />
< /c:import >
等同于:
http://www.xxxx.com?name=yourname
3.< c:url value=“${value}” [context=“${context}”] [var=“varName
”] [scope=“application | request”] />
产生一个url,其中主题内容必须文
属性:
value url地址 String类型
context 在相同容器下,不同的web站台必须”/”开头,String类型
var: 变量名称,存储文件中的内容,String类型,不能为EL
scope 为String类型、变量var的存储范围,不能为EL
比如:
< img src=“<c:url value=‘www.xxxx.com’ >< c:param name=‘picture’
value=‘picName’/></c:url>” />
< img src=“www.xxxx.com/?pictue=picName” />
4.< c:redirect url=“${url}” [context=“${context}”] />
从定向到url
属性:
uri 文件包含的地址 String类型
context 在相同容器下,不同的web站台必须”/”开头,String类型
比如:
< c:redirect url=“<c:url value=‘www.xxxx.com’>< c:param name=‘
paramName’ value=‘paramName’ /></c:url>” context=“/contextName” />
等同< c:redirect url=“< c:url value=‘www.xxxx.com’ /></c:url>”
context=“/contextName” >< c:param name=“paramName” value=‘paramValue’
/></c:redirect>
分享到:
相关推荐
`jstl1.1.jar`是JSTL的1.1版本,包含核心、XML、I18N和函数四个主要部分,提供了丰富的标签库支持。 其次,`standard1.1.jar`库,又称为JSTL的EL(Expression Language)支持库,也被称为JavaServer Pages Standard...
### JSTL 1.1 使用说明 #### JSTL 1.1 简介 JSTL(JavaServer Pages Standard Tag Library)是专为Java Web开发设计的一套标准标签库,它由...学习和掌握JSTL 1.1 的使用方法对于Java Web开发人员来说是非常有益的。
**JSTL(JavaServer Pages Standard Tag Library)与Standard库** JSTL是JavaServer Pages标准标签库,它提供了一套用于处理常见JSP任务的标签,如迭代、条件判断、XML处理等,旨在减少在JSP页面中使用Java脚本的量...
**JSTL1.1的核心组件** 1. **Core**: 这个核心标签库提供了基础的控制结构,比如迭代和条件语句。例如,`<c:forEach>`用于遍历集合,`<c:if>`和`<c:choose>`用于执行条件判断。 2. **fmt**: 国际化和本地化支持库...
首先,JSTL1.1主要包含以下几个核心部分: 1. **Core** - 提供基本的控制流程标签,如`<c:if>`、`<c:forEach>`和`<c:choose>`,它们分别对应条件判断、循环和选择语句。 2. **Format** - 提供国际化和格式化支持,...
JSTL 1.1 MR2(Maintenance Release 2)是该库的一个特定版本,它包含了对之前版本的一些改进和修复。 **JSTL的核心组件包括:** 1. **Core标签库(c:tags)**:提供了基本的控制流标签,如条件语句、循环、重定向...
本篇将详细介绍JSTL1.1的核心标签库以及相关的EL表达式变量。 **一、EL表达式中的默认变量** 1. **pageScope、requestScope、sessionScope、applicationScope**:这四个变量分别代表了四个不同的作用域,用于访问...
在JSTL 1.1中,TLD文档提供了详细的关于JSTL各个部分的描述,包括核心标签库(core)、国际化标签库(fmt)、函数标签库(fn)、XML处理标签库(xml)和SQL标签库(sql)。这些库包含了大量用于处理常见任务的标签,...
学习和使用JSTL 1.1对于开发人员来说有以下好处: 1. **代码可读性**:JSTL将复杂的脚本逻辑替换为易于理解的标签,提高了代码的可读性和可维护性。 2. **分离关注点**:通过使用JSTL,可以更好地实现视图层和业务...
JSTL主要由五个核心部分组成:Core(核心)、XML、JDBC、fmt(格式化)和Function库。这些库提供了诸如条件判断、循环、国际化、XML处理和数据库操作等功能。 1.2 JSTL的优势 JSTL通过减少JSP页面上的脚本元素,...
JSTL的核心标签库包含了Web应用中的常见任务,如循环、表达式赋值和基本的输入输出操作。国际化标签库用于数据的格式化显示,适应不同区域的日期和数字格式。数据库标签库允许开发者直接在JSP页面上执行数据库查询。...
"jstl-1_1-mr2-spec.pdf"是JSTL 1.1版本的修订版2规范文档,它详细描述了JSTL的架构、标签库的使用方法、API接口和实现机制等内容。通过阅读这个文档,开发者可以深入了解JSTL的设计理念,学习如何在实际项目中有效...
**核心标签库**是最常用的标签库之一,它提供了多种标签来帮助开发者更高效地处理 JSP 页面中的逻辑。这些标签主要分为四类: 1. **多用途核心标签** - `<c:out>`:用于显示数据。 - `<c:set>`:用于变量赋值。 ...
JSTL 1.1增加了对Servlet 2.4和JSP 2.0规范的支持,同时JSP容器可以直接解析EL表达式,使得EL能独立于JSTL标签库工作。这意味着EL表达式可以在JSP页面的任何位置使用,而不仅仅是JSTL标签内部。 总的来说,JSTL和EL...
### JSTL与EL:深度解析与学习指南 在探讨JSTL(JavaServer Pages Standard Tag Library)与EL(Expression Language)之前,我们先来理解它们在Java Web开发中的核心地位。JSTL与EL是Java Web应用开发中不可或缺的...
**JSTL(JavaServer Pages Standard Tag Library)中文帮助文档** JSTL 是一套用于 JavaServer Pages (JSP) 的标准标签库,...学习和使用 JSTL,能让你的 JSP 页面更专业、更易于维护,是 J2EE 开发者必备的一项技能。
### JSTL 语法介绍及核心功能详解 #### 一、概述 JSTL(JavaServer Pages ...通过对上述核心标签库的学习和掌握,开发者可以更加高效地完成日常开发任务。同时,结合EL表达式语言的使用,可以让JSP页面更加简洁易读。
1. JSTL 1.1 标签库: - **核心标签库** 包含了一些通用的标签: - `<c:set>`:设置变量,可以在JSP作用域或JavaBean中存储值。 - `<c:out>`:输出数据,类似于`<%= %>`, 但更安全,防止XSS攻击。 - `<c:remove>...
**JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,它为JSP页面提供了一套...通过深入学习JSTL的核心标签库和表达式语言,以及查阅官方规范,可以进一步提升开发效率和代码质量。
Jakarta Taglibs是由Apache软件基金会维护的一系列JSP标签库,其中Standard库是JSTL的核心部分。它包含了一系列标签,用于执行常见的任务,如控制流程(if/else,foreach)、URL重写、日期时间处理等,使得开发者...