`

jstl标签详解

阅读更多
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标签详解jstl标签详解jstl标签详解

    在实际开发中,`JSTL_标签库详解(一个不漏).doc`和`JSTL核心标签库.doc`这样的文档是极有价值的参考资料,它们详细解释了每个标签的用法、属性以及示例,可以帮助开发者快速理解和掌握JSTL的使用。确保阅读并理解...

    jstl标签详解.doc

    **JSTL(JSP Standard Tag Library)**是Java服务器端的一个强大工具,它提供了一系列标准的标签,用于简化JSP页面的开发。JSTL的核心理念是将业务逻辑从表现层分离,使得JSP页面更加简洁,易于理解和维护。JSTL由...

    JSTL标签详解入门首选

    **JSTL(JavaServer Pages Standard Tag Library)标签库**是Java Web开发中的一个重要组成部分,它为JSP页面提供了一套标准的...请查阅《JSTL详解》文档以获取更多详细信息和实战示例,进一步提升你的JSP开发技能。

    jstl标签详解(jsp开发必看)

    在本教程中,我们将深入探讨JSTL的核心概念、主要组成部分以及如何在JSP开发中应用JSTL标签。 首先,JSTL主要由五个核心部分组成: 1. **Core**:这是最基础的部分,提供了处理流程控制、URL重写、页面跳转等功能...

    jstl标签.rar

    《JSTL标签详解——HTML开发者的利器》 在Web开发领域,JSTL(JavaServer Pages Standard Tag Library,Java服务器页面标准标签库)是一种强大的工具,尤其对于HTML开发者而言,它极大地简化了代码,提高了可读性和...

    JSTL标签-讲解及实例

    ### JSTL标签详解及实例 #### 一、概述 JSTL(JavaServer Pages Standard Tag Library,JavaServer页面标准标签库)是一个不断完善的开源JSP标签库,由Apache的Jakarta小组负责维护。该标签库专为简化JSP页面开发...

    JSP的JSTL标签和EL表达式大全

    JSTL标签详解** 例如,`&lt;c:forEach&gt;`标签用于遍历集合,`&lt;c:if&gt;`用于条件判断,`&lt;c:set&gt;`用于设置变量,`&lt;c:choose&gt;`、`&lt;c:when&gt;`、`&lt;c:otherwise&gt;`则构成了选择结构。这些标签使得JSP页面逻辑更清晰,降低了与HTML...

    jstl标签学习笔记

    **JSTL标签详解** JavaServer Pages Standard Tag Library (JSTL) 是一套标准的标签库,用于简化JSP页面的编程,使得开发者能够使用标签而不是脚本来处理常见任务。在JSTL中,`EL(Expression Language)`是用于...

    JSP网页编程JSTL标签

    ### JSP网页编程JSTL标签详解 #### JSTL概览 JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages标准标签库)是一种专为简化JavaServer Pages(JSP)开发而设计的标准标签库。它提供了一系列预定义的...

    JSTL 标签大全详解

    #### 一、JSTL标签介绍 ##### 1、什么是JSTL? JSTL(JavaServer Pages Standard Tag Library,JavaServer 页面标准标签库)是由 Apache 开发的一组标准标签库,用于简化 JSP 页面的开发。JSTL 是基于 EL...

    EL表达式和JSTL标签大全

    ### EL表达式和JSTL标签详解 #### 一、EL表达式 ##### 1. EL简介 **1.1 语法结构** EL (Expression Language) 表达式的语法非常简单,采用 `${expression}` 的形式来表示。这种语法可以在任何 HTML 和 JSP 标签...

    jstl标签 forEach详解

    jstl forEach 标签详解 jstl forEach 标签是 JavaServer Pages Standard Tag Library (JSTL) 中的一个标签,用于循环控制,可以将集合中的成员循序浏览一遍。该标签的运作方式为当条件符合时,就会持续重复执行的...

    jstl fmt标签详解

    #### 三、国际化核心标签详解 ##### 1. `&lt;fmt:setLocale&gt;` 标签 - **功能**:用于设置当前的地域设置(locale)。 - **属性**: - `value`:设置地域设置的值,如 "zh_CN" 表示简体中文。 - `scope`:可选属性,...

    jstl标签库使用详解

    实用jstl标签库使用详解,提供最简洁最容易使用的jstl标签库的使用方法

    jstl标签

    **JSTL标签详解** JavaServer Pages Standard Tag Library(JSTL)是Java社区为简化JSP页面开发而推出的一个标准库,它提供了一系列的标签,用于处理常见任务,如迭代、条件判断、XML处理、国际化等,从而使得JSP...

    JSP JSTL 标签库详解 (一个不漏)

    JSP JSTL 标签库详解 JSTL(JavaServer Pages Standard Tag Library)是 Java EE 应用程序中的一种标签库,用于简化 JSP 页面的开发。JSTL 标签库提供了一组丰富的标签,用于处理各种常见的 Web 开发任务。本文将对...

Global site tag (gtag.js) - Google Analytics