JSTL定义
JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。顾名思义,format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行 JSP 页面的国际化。xml 库包含一些标记,这些标记用来操作通过 XML 表示的数据,而 sql 库定义了用来查询关系数据库的操作
JSTL的优点
1、 在应用程序服务器之间提供了一致的接口,最大程度地提高了WEB应用在各应用服务器之间的移植。
2、 简化了JSP和WEB应用程序的开发。
标签详解
一 core 标签:
1,catch
<c:catch>动作用于捕获JSP元素在其体中抛出的异常。
示范代码:
<c:catch var="err">
${param.sampleSingleValue[9] == 3}
</c:catch>
${err}
2,choose
用于控制嵌套<c:when>和<c:otherwise>动作的处理。
示范代码:
<c:choose>
<c:when test="${product.onSale}"> ...</c:when>
<c:otherwise> ....</c:otherwise>
</c:choose>
3,forEach
<c:forEach>动作将其体反复计算固定次数,或者针对一个集合中的每个元素分别计算一次体。示范代码:
<c:forEach items="${map}" var="mymap" >
<c:out value="${mymap.key}" />
<c:out value="${mymap.value}" />
</c:forEach>
4,forTokens
标签可以根据某个分隔符分隔指定字符串,相当于 java.util.StringTokenizer类。
示范代码:
<c:forTokens items="${userPhone}" delims="-" var="item">
${item}
</c:forTokens>
5,if
<c:if>动作仅当所指定的表达式计算为true时才计算其体。
示范代码:
<c:if test="${empty param.empDate}">
.....
</c:if>
6,import
标签允许包含另一个JSP页面到本页面来。示范代码:
<c:import url="/MyHtml.html" var="thisPage" />
7,otherwise
它等价于“else”语句。
示范代码:
<c:choose>
<c:when test="${paramValues.sampleValue[2] == 11}">
not 12 not 13,it is 11
</c:when>
<c:otherwise>not 11 、12、13</c:otherwise>
</c:choose>
8,out
<c:out>标签是一个最常用的标签,用于在 JSP 中显示数据。它的作用是用来替代通过JSP内 置对象out或者<%=%>标签来输出对象的值。示范代码:
<c:out value="${sessionScope.username}"/>
9,param
用于传递参数,用来为包含或重定向的页面传递参数。示范代码:
<c:redirect url="/MyHtml.jsp">
<c:param name="userName" value=”RW” />
</c:redirect>
10,redirect
可以将客户端的请求从一个 JSP 网页导向到其他文件。
示范代码:
<c:redirect url="http://java.sun.com">
<c:param name="param" value="value"/>
</c:redirect>
11,remove
<c:remove>标签用于删除存在于scope中的变量。类似于<%session.removeAttribute(“name”)%> 、<%request.removeAttribute(“name”)%>...
示范代码:
<c:remove var="username" scope="session"/>
12,set
<c:set>标 签用于为变量或JavaBean中的变量属性赋值的工作。这个标签用于在某个范围(page、request、session、application 等)中使用某个名字设定特定的值,或者设定某个已经存在的javabean对象的属性。他类似 于<%request.setAttrbute("name","value");%>示范代码:
<c:set value="this is andy" var="oneString"/>
13,url
主要用来产生一个URL。
示范代码:
<c:url value="http://www.javafan.net " >
<c:param name="param" value="value"/>
</c:url>
14,when
<c:when>标签等价于“if”语句,它包含一个test属性,该属性表示需要判断的条件。
示范代码:
<c:when test="${condition1}">
condition1 为 true
</c:when>
二,format标签:
1,bundle
<fmt:bundle> 这签用于资源配置文件的绑定,并在页面中显示出来。示范代码:
<fmt:bundle basename="property.test">
2,formatDate
<fmt:formatDate> 标签用于格式化日期。
示范代码:
<fmt:formatDate value="${blogEntry.created}" pattern="h:mm a zz"/>
3, formatNumber
<fmt: formatNumber > 标 签用于格式化数字。
示范代码:
<fmt:formatNumber value="1000.888" type="currency" var="money"/>
4,message
用于信息显示的标签,将显示资源配置文件中定义的信息。
示范代码:
<fmt:message key="passWord" bundle="${applicationBundle}" />
5,param
<fmt:param> 标签 用于参数传递。
<fmt:param> 标签应该位于 <fmt:message> 标签内,将为该消息标签提供参数值。它只有一个属性 value 。 <fmt:param> 标签有两种使用版本,一种是直接将参数值写在 value 属性中,另一种是将参数值写在标签体内。示范代码:
<fmt:message key="userName"/>
6,parseDate
<fmt:parseDate> 标签用于解析一个日期,并将结果作为 java.lang.Date 类型的实例返回。
示范代码:
<fmt:parseDate var="i" type="date" value="2006-12-11" />
7,parseNumber
<fmt:parseNumber> 标签用于解析一个数字,并将结果作为 java.lang.Number 类的实例返回。
示范代码:
<fmt:parseNumber value="15%" type="percent" var="num"/>
8,requestEncoding
<fmt:requestEncoding> 标签用于为请求设置字符编码。它只有一个属性 value ,在该属性中可以定义字符编码。示范代码:
<fmt:requestEncoding value="GB18030"/> 格式化文本编码
9,setBundle
<fmt:setBundle> 标签则允许将资源配置文件保存为一个变量,在之后的工作可以根据该变量来进行。
示范代码:
<fmt:setLocale value="zh_CN"/>
<fmt:setBundle basename="applicationMessage" var="applicationBundle"/>
10,setLocale
<fmt:setLocale> 标签用于设置本地化环境。
示范代码:
<fmt:setLocale value="zh_TW"/>
11,setTimeZone
<fmt:timeZone> 、 <fmt:setTimeZone> 这两组标签都用于设定一个时区。
12,timeZone
<fmt:timeZone> 、 <fmt:setTimeZone> 这两组标签都用于设定一个时区。
示范代码:
<fmt:timeZone value="US/Eastern">
...
</fmt:timeZone>
三 functions标签
1,contains
fn:contains 函数用来判断源字符串是否包含子字符串。它包括 string 和 substring 两个参数,它们都是 String 类型,分布表示源字符串和子字符串。其返回结果为一个 boolean 类型的值。下面看一个示例。
${fn:contains("ABC", "a")}<br>
${fn:contains("ABC", "A")}<br>
前者返回“ false ”,后者返回“ true ”。
2,containsIgnoreCase
fn:containsIgnoreCase 函数与 fn:contains 函数的功能差不多,唯一的区别是 fn:containsIgnoreCase 函数对于子字符串的包含比较将忽略大小写。
示范代码:
${fn:containsIgnoreCase("ABC", "a")}<br>
${fn:containsIgnoreCase("ABC", "A")}<br>
前者和后者都会返回“ true ”。
3,endsWith
fn:endsWith 函数用来判断源字符串是否符合一连串的特定词尾。它与 fn:startsWith 函数相同,包括 string 和 subffx 两个参数,并返回一个 boolean 类型的值。示范代码。
${fn:endsWith("ABC", "bc")}<br>
返回 false
4,escapeXml
fn:escapeXml 函数用于将所有特殊字符转化为字符实体码。它只包含一个 string 参数,返回一个 String 类型的值。
示范代码:
${fn:escapeXml(param:info)}
5, indexOf
fn:indexOf 函数用于取得子字符串与源字符串匹配的开始位置,若子字符串与源字符串中的内容没有匹配成功将返回“ -1 ”。
示范代码:
${fn:indexOf("ABCD","aBC")}
由于没有匹配成功,所以返回 -1
6, join
fn:join 函数允许为一个字符串数组中的每一个字符串加上分隔符,并连接起来。
示范代码:<% String[] stringArray = {"a","b","c"}; %>
<%request.getSession().setAttribute("stringArray", stringArray);%>
${fn:join(sessionScope.stringArray,";")}
7, length
获取结果集的长度,类似java.util.Collection 接口定义了 size 方法。
示范代码:${fn:length(sessionScope.arrayList1)}
8,replace
fn:replace 函数允许为源字符串做替换的工作。
示范代码:
${fn:replace("ABC","A","B")}<br>
将“ ABC ”字符串替换为“ BBC ”,在“ ABC ”字符串中用“ B ”替换了“ A ”。
9, split
fn:split 函数用于将一组由分隔符分隔的字符串转换成字符串数组。
示范代码:
${fn:split("A,B,C",",")}
将“ A,B,C ”字符串转换为数组 {A,B,C} 。
10,startsWith
fn:startsWith 函数用来判断源字符串是否符合一连串的特定词头。
示范代码:
${fn:startsWith ("ABC", "ab")}<br>
返回 false
11,substring
fn:substring 函数用于截取字符串。它的参数、返回结果和描述。
我们经常用的呀!
示范代码:
${fn:substring("ABC","1","2")}<br>
截取结果为“ B ”。
12,substringBefore
fn:substringBefore 函数允许截取源字符从开始到某个字符串。
示范代码:
${fn:substringBefore("ABCD","BC")}<br>
截取的结果为“ A ”。
13,toLowerCase
fn:toLowerCase 函数允许将源字符串中的字符全部转换成小写字符。
示范代码:
${fn:toLowerCase("ABCD")}<br>
转换的结果为“ abcd ”。
14,toUpperCase
fn:toUpperCase 函数允许将源字符串中的字符全部转换成大写字符。
示范代码:
${fn:toUpperCase("abcd")}
转换的结果为“ ABCD ”。
15,trim
fn:trim 函数将删除源字符串中结尾部分的“空格”以产生一个新的字符串。
示范代码:
${fn:trim("AB C ")}D
转换的结果为“ AB CD ”,注意,它将只删除词尾的空格而不是全部,因此“ B ”和“ C ”之间仍然留有一个空格。
分享到:
相关推荐
在实际开发中,`JSTL_标签库详解(一个不漏).doc`和`JSTL核心标签库.doc`这样的文档是极有价值的参考资料,它们详细解释了每个标签的用法、属性以及示例,可以帮助开发者快速理解和掌握JSTL的使用。确保阅读并理解...
**JSTL(JSP Standard Tag Library)**是Java服务器端的一个强大工具,它提供了一系列标准的标签,用于简化JSP页面的开发。JSTL的核心理念是将业务逻辑从表现层分离,使得JSP页面更加简洁,易于理解和维护。JSTL由...
**JSTL(JavaServer Pages Standard Tag Library)标签库**是Java Web开发中的一个重要组成部分,它为JSP页面提供了一套标准的...请查阅《JSTL详解》文档以获取更多详细信息和实战示例,进一步提升你的JSP开发技能。
在本教程中,我们将深入探讨JSTL的核心概念、主要组成部分以及如何在JSP开发中应用JSTL标签。 首先,JSTL主要由五个核心部分组成: 1. **Core**:这是最基础的部分,提供了处理流程控制、URL重写、页面跳转等功能...
《JSTL标签详解——HTML开发者的利器》 在Web开发领域,JSTL(JavaServer Pages Standard Tag Library,Java服务器页面标准标签库)是一种强大的工具,尤其对于HTML开发者而言,它极大地简化了代码,提高了可读性和...
### JSTL标签详解及实例 #### 一、概述 JSTL(JavaServer Pages Standard Tag Library,JavaServer页面标准标签库)是一个不断完善的开源JSP标签库,由Apache的Jakarta小组负责维护。该标签库专为简化JSP页面开发...
JSTL标签详解** 例如,`<c:forEach>`标签用于遍历集合,`<c:if>`用于条件判断,`<c:set>`用于设置变量,`<c:choose>`、`<c:when>`、`<c:otherwise>`则构成了选择结构。这些标签使得JSP页面逻辑更清晰,降低了与HTML...
**JSTL标签详解** JavaServer Pages Standard Tag Library (JSTL) 是一套标准的标签库,用于简化JSP页面的编程,使得开发者能够使用标签而不是脚本来处理常见任务。在JSTL中,`EL(Expression Language)`是用于...
### JSP网页编程JSTL标签详解 #### JSTL概览 JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages标准标签库)是一种专为简化JavaServer Pages(JSP)开发而设计的标准标签库。它提供了一系列预定义的...
#### 一、JSTL标签介绍 ##### 1、什么是JSTL? JSTL(JavaServer Pages Standard Tag Library,JavaServer 页面标准标签库)是由 Apache 开发的一组标准标签库,用于简化 JSP 页面的开发。JSTL 是基于 EL...
### EL表达式和JSTL标签详解 #### 一、EL表达式 ##### 1. EL简介 **1.1 语法结构** EL (Expression Language) 表达式的语法非常简单,采用 `${expression}` 的形式来表示。这种语法可以在任何 HTML 和 JSP 标签...
jstl forEach 标签详解 jstl forEach 标签是 JavaServer Pages Standard Tag Library (JSTL) 中的一个标签,用于循环控制,可以将集合中的成员循序浏览一遍。该标签的运作方式为当条件符合时,就会持续重复执行的...
#### 三、国际化核心标签详解 ##### 1. `<fmt:setLocale>` 标签 - **功能**:用于设置当前的地域设置(locale)。 - **属性**: - `value`:设置地域设置的值,如 "zh_CN" 表示简体中文。 - `scope`:可选属性,...
实用jstl标签库使用详解,提供最简洁最容易使用的jstl标签库的使用方法
**JSTL标签详解** JavaServer Pages Standard Tag Library(JSTL)是Java社区为简化JSP页面开发而推出的一个标准库,它提供了一系列的标签,用于处理常见任务,如迭代、条件判断、XML处理、国际化等,从而使得JSP...
JSP JSTL 标签库详解 JSTL(JavaServer Pages Standard Tag Library)是 Java EE 应用程序中的一种标签库,用于简化 JSP 页面的开发。JSTL 标签库提供了一组丰富的标签,用于处理各种常见的 Web 开发任务。本文将对...