`
王世伟
  • 浏览: 25774 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

JSTL标签库

 
阅读更多

标准标签库JSTL

JSTL主要提供了5大类标签库:

1.       核心标签库: 为日常任务提供通用支持,如显示和设置变量,重复使用一组项目,试条件

以及其他    操作(如导入和重定向web页面等).

2.       国际化(I18N)标签库: 支持多种语言的引用程序.

3.       SQL标签库: 对访问和修改数据库提供标准化支持.

4.       XML标签库: XML文件处理和操作提供支持,包括XML节点的解析,迭代,基于XML数据的条件评估以及可扩展样式语言转换(Extensible Style Language Transformations , XSLT)的执行.

5.       函数标签库: 通过在EL表达式中调用函数标签库中的函数来实现特定的操作,例如: ${fn:contains(sring,substring)},其功能是判断string字符串中是否包含substring字符串.

JSTL标签库使用方法:

标签库                         URI                             前缀              使用模式

核心标签库                     http://java.sun.com/jstl/core         c             <c:tagname…>

国际化标签(I18N)        http://java.sun.com/jstl/fmt           fmt         <fmt:tagname…>

SQL标签库                 http://java.sun.com/jstl/sql            sql          <sql:tagname…>

XML标签库                http://java.sun.com/jstl/xml          x            <x:tagname…>

函数标签库                  http://java.sun.com/jstl/functions   fn           <fn:tagname…>

 

核心标签库

核心标签库包括:out , set , remove , catch , if , choose , when URL .

表达式操作标签:  包括:out , set , remove , catch.

out标签:

核心标签库中最为基本的标签就是<c:out>,他可以在页面中显示一个字符串或者一

EL表达式的值,其功能与JSP中的<%= 表达式%>类似

使用格式如下:

<c: out value=”object” [escapeXml=”true|false”] />这个标签还可以有一个体,如下:

<c: out value=”object” [escapeXml=”true|false”] >defalut value</c:out>

这表示当value属性指定的object值为null,就会显示体中指定的值,也就是default value的值,体中也可以是jsp代码.

<c:out>中各属性的说明如下:

1.       value : 可以指定一个字符串作为输出内容,也可以指定为EL表达式,例如:${3+5}.

2.       escapeXml : 类型为boolean , 确定 , < , > , & , ‘ , “ 等字符在结构的字符串中是否被转换成字符串实体代码,默认值是true(就是是否按html中的样式进行输出,设置true就是按照字符串原样进行输出,false就是按照html标识符进行输出)

3.       default value : 可以是字符串,也可以是一个EL表达式或者jsp表达式,如果属性(value)指定的表达式或者对象为null,那么将输出这个defalut value部分的值.

set标签:

set标签用来在某个范围(request,session或者application)内设置值,或者设置某个对象的属性值.Set标签使用格式如下:

1. 使用value 属性在一个特定的范围内指定某个变量的值,其使用格式如下:
<c:set var=”varName” value=”varValue” [scope=”page|request|session|application”]/>

2. 当使用value属性在一个特定范围内指定某各变量的值时,也可以包括一个体,他的作用与out标签体的作用一样,value指定的值为null,默认使用体中指定的值,使用的格式如下:
       <c:set var=”varName” value=”varValue” [scope=”page|request|session|application”]>
              default value
       </c:set>

3. 设置某一个特定对象属性的使用格式如下:
<c:set property=”propertyName” target=”target” value=”value”/>

4. 在设置某个特定对象的一个属性时,也可以使用一个体,并且指定默认的值,使用格式如下:
      
<c:set property=”propertyName” target=”target” value=”value”>default value</c:set>

该标签中的各属性说明如下:

1. value : 该属性指定变量或者对象中某个属性的值,并且可以是一个表达式.

2. var : 变量名称,value属性指定的值就保存在这个变量中.

3. scope : 设定变量的有效范围,如果不设置,默认为page.

4. target : 设置属性的一个对象,它必须是JavaBean 或者java.util.Map对象.

5. property : 设置对象中的一个属性.

remove标签

remove标签一般和set标签配套使用,两者是相对应的,remove标签用于删除某个变量或者属性,使用格式如下:

<c:remove var=”varName” [scope=”page|request|session|application”] />

Remove标签中使用的各属性说明如下:

1.       scope : 设定这个需要删除的变量的所在范围.

2.       var : 需要删除的变量或者对象属性的名称.如果没有scope属性,即采用默认值,就相当于调用PageContext.removeAttribute(varName)方法,如果指定了这个变量所在的范围,那么系统会调用PageContext.removeAttribute(varName,scope)方法.

catch标签

catch标签的功能和java中的try{…}catch{…}语句的功能很相似,它用于捕获嵌入到其中间语句抛出的异常,这个标签的使用格式如下:

<c:catch var=”varName”>相关操作语句 </c:catch>   --如果操作语句中出现异常,catch会将异常保存在 varName变量中.

流程控制标签: 包括: if , choose , when , otherwise .

if标签

这个标签作用与java中的if语句作用相同,用于判断条件语句,主要的使用格式如下

1.       <c:if> 体中不包括体的使用格式:

<c:if test=”checkCondition” var=”varName” scope=”page|request|session|application”/>

2.       <c:if> 体中包括体时,使用格式如下:
<c:if test=”checkCondition” var=”varName” scope=”page|request|session|application”>body content</c:if>

标签中使用的属性说明:
test :
判断条件的表达式,返回类型为true 或者 false;(也就是if的条件

3.      var : 这个变量用于保存test条件表达式判断所返回的true或者false(if条件执行后所得到的boolean值将要保存在var变量中).scope : 指定var变量所在的有效范围.

4.      choose , when , otherwise 标签

这些标签相当于java中的 switch , case , default 条件,使用实例如下:

<c:set var=”num” scope=”page” value=”admin”/><c:choose>

<c:when test=”${num==’guest’}”>

<c:out value=”guest”/></c:when><c:when test=”${num==’admin’}”><c:out value=”admin”/></c:when>

<c:otherwise><c:out value=”other”/></c:otherwise></c:choose>运行jsp页面后,输出 admin

forEach迭代标签

该标签用来对一个collection集合中的一系列对象进行迭代输出,并且可以指定迭代次数,一般的使用格式如下:

<c:forEach items=”collection” var=”varName” [varstatue=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]>Body content</c:forEach>

这个标签使用的属性描述如下:

1.       var : 也就是保存在collection集合类中的对象名称.

2.       items : 将要迭代的集合类名.

3.       varStatus : 存储迭代的状态信息,可以访问到迭代自身的信息.

4.       begin : 如果指定了begin,就表示从items[begin]开始迭代;如果没有指定begin,则从集合的第一个值开始迭代.

5.       end : 表示迭代到集合的end位时结束,如果没有指定end,则表示一直迭代到集合的最后一位.

6.       step : 指定迭代的步长.

:

<%String Items[] =new String[5];

Items[0]=”核心标签库”;

Items[1]=”国际化标签库”;

       Items[2]=”SQL标签库”;

Items[3]=”XML标签库”;

       Items[4]=”函数标签库”;

Request.setAttribute(“ItemName”,Items);

%>

<B><c:out value=”不指定beginend的迭代:”/><B><br>

<c:forEach var=”ItemName” items=”${Items}”>&nbsp;<c:out value=”${ItemName}” /><br></c:forEach>

<B><c:out value=”指定beginend的迭代:”/><B><br>

<c:forEach var=”ItemName” items=”${Items}” begin=”1” end=”3” step=”1”>&nbsp;<c:out value=”${ItemName}” /><br></c:forEach><B><c:out value=”输出整个迭代的信息:”/><B><br>

<c:forEach var=”ItemName” items=”${Items}” begin=”3” end=”4” step=”1” varStatus=”s”>&nbsp;<c:out value=”${ItemName}” />的四种属性:<br>&nbsp;所在位置即索引: <c:out value=”${s.index}” /> <br>&nbsp;总共已迭代的次数: <c:out value=”${s.count}”/><br>&nbsp;是否为第一个位置: <c:out value=”${s.first}” /><br>

&nbsp;是否为最后一个位置: <c:out value=”${s.last}”/></c:forEach>

代码说明:     s.index 用来获取计数器的值,  s.count用来获取这是第几次循环,  s.first 用来获取是否是循环开始的第一次 , s.last 用来获取是否是循环的最后一次 ,  first last 都返回boolean .       

forTokens 标签

这个标签的作用和Java中的StringTokenizer类的作用非常相似,通过items属性来指定一个特定的字符串,然后通过delims属性指定一种分隔符(可以同时指定多个),通过指定的分隔符把items属性指定的字符串进行分组,forEach标签一样,forTokens标签也可以指定beginend以及step属性值.

使用格式如下:

<c:forTokens items=”stringOfTokens” delims=”delimiters” var=”varName” [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]>

Body content</c:forTokens>

标签中的各个属性描述如下:

1.       var : 进行迭代的参数名称.

2.       items : 指定的进行标签化的字符串.

3.       varSatus : 每次迭代的状态信息.

4.       delims : 使用这个属性指定的分隔符来分隔items指定的字符串.

5.       begin : 开始迭代的位置.

6.       end : 迭代结束的位置.

7.       step : 迭代的步长.

:

<c:out value=”forTokens标签实例”/><h4>使用” | ” 作为分隔符</h4>

<c:forTokens var=”token” items=”bleu,rouge|vert,jaune|blanc,rouge” delims=”|”>

&nbsp;&nbsp;<c:out value=”${token}”/></c:forTokens><h4>使用” | , ”作为分隔符</h4>

<c:forTokens var=”token” items=”bleu,rouge|vert,jaune|blanc,rouge” delims=”|,”>&nbsp;&nbsp;<c:out value=”${token}”/></c:forTokens>

代码说明: delims=”|,” , 即使用”|””,”同时作为分隔符进行使用.如果需要更多的分隔符就是使用 “|,./” 在引号内输出.

URL相关的标签:

URL相关的标签主要用来将其他文件包含进来,或者提供页面之间的重定位以及URL地址的生成,参数的输出等.一般包括如下几个标签.

<c:import>标签: 与传统JSP页面重的<jsp:include>标签类似

.<c:redirect>标签: 进行页面的重定位.<c:url> : 主要用来重写URL地址.<c:param> : 一般param标签会与其他标签一起配套使用,用于参数值的传递.

<c:import> 标签:

该标签用于把其他今天文件包含到该文件当中,它与传统的<jsp:include>相类似,不同的是<jsp:include>标签只能用来包括该应用中的其他文件,<c:import>还可以包含外部站点中的静态文件,所以它的功能更加强大.使用格式如下:

<c:import url=”url” [context=”context”] [var=”varName”] [scope=”page|request|session|application”] [varReader=”varReader”] [charEncodion=”charEncoding”]>Body content</c:import>

标签中的属性描述如下:

url: 待引用静态文件的URL地址.

context: 当采用相对路径访问一个外部静态文件时,这里的context指定这个外部文件的名称.

var: 当使用字符串输出时,把输出的内容存储在这个var指定的变量中.

scope: 指定var参数变量的有效范围.

varReader: 这个属性指定的参数变量类型是Reader,可以用于读取文件的内容.

charEncoding: 引入文件所采用的字符编码.

Import标签即可以采用相对路径也可以采用绝对路径来引用本地点中的任何静态文件,还可以使用绝对路径引用外部站点中的静态文, 甚至可以是ftp站点中的文件,例如:<c:import var=”myurl” url=”http://www.163.com” />就是引用http://www.163.com 站点的主页面.

可以把引用文件中的内容赋值给var属性指定的变量,然后进行读取,也可以赋值给varReader指定的Reader类型的变量,然后进行相应的读取.

有时引入的文件在本地显示会出现乱码,这时可以通过charEncoding来指定这些内容所采用的字符集编码.

<c:redirect><c:param>标签:

Redirect标签用来进行页面之间的重定向,它与传统JSP程序重的<jsp:redirect>标签功能相类似,param标签是与redirect一起使用的,它用来进行参数值的传递,redirect标签的使用格式如下:

 

<c:redirect url=”url” [context=”context”]/> 

redirect标签中指定param参数的使用格式如下:

<c:redirect url=”url” []context=”context”>

<c:param name=”paramName” value=”value”/></c:redirect>

:  [通过创建c_redirect1.jsp  c_redirect2.jsp  两个文件说明]

c_redirect1.jsp文件内容如下:

<c:redirect url=”c_redirect2.jsp” ><c:param name=”userName” value=”admin”/></c:redirect>

c_redirect2.jsp 文件内容如下:

<body>

userName=<c:out value=”${param.userName}”></body>

c_redirect1.jsp页面文件内容不会显示,因为直接重定向到c_redirect2.jsp,重定向c_redirect2.jsp,页面中输出 userName=admin

<c:url>标签:

这个标签主要用来重写url地址,使用格式如下:

<c:url value=”value” [context=”context”] [var=”varName”] [scope=”page|request|session|application”] />

当进行参数传递时,使用格式如下:

<c:url value=”value” [context=”context”] [var=”varName”] [scope=”page|request|session|application”] >

<c:param name=”paramName” value=”value” /></c:url>

标签中使用的属性描述如下:

value: 将要处理的URL地址.

context: 当使用相对路径方法指定外部文件时,这个属性指定的是外在文件的名称.

var: 给这个URL地址起一个标识.

Scope: 规定这个var属性所指定变量的有效范围.

创建一个c_url.jsp,其源代码如下:

<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %>

<c:url var=”url” value=”c_url2.jsp” scope=”session” ><c:param name=”userName” value=”admin”/>

<c:param name=”password” value=”123456”/></c:url><c:out value=”${url}”/>

<a herf=’<c:out value=”${url}”/>’>Link to other page</a>

代码说明: url标签可以指定一个变量(var属性指定)来把url地址保存,并且可以指定这个变量的有效范围为session ,所以当需要用到这个url地址时,就可以使用session.getAttribute(varName)方法来获取这个地址,所以一般需要重复使用同一个url地址才会使用<c:url>标签的功能.

 

分享到:
评论

相关推荐

    JAVAEE实验报告EL表达式和jstl标签库的使用.pdf

    JAVAEE 实验报告 EL 表达式和 JSTL 标签库的使用 EL 表达式(Expression Language)是一种在 JSP 页面中使用的脚本语言,用于简化 JSP 页面的开发。EL 表达式可以访问 JSP 页面中的变量、对象和集合,进行逻辑操作...

    JSTL标签库及使用方法

    **JSTL标签库及其使用方法** JavaServer Pages Standard Tag Library(JSTL)是Java社区为简化JSP页面开发而推出的一个标准标签库。它提供了丰富的功能,如迭代、条件判断、XML处理、国际化等,使代码更加简洁、易...

    jstl标签库的配置

    本篇文章将深入探讨JSTL标签库的配置过程及其在实际应用中的作用。 首先,我们要理解**JSTL的核心组件**。JSTL主要由五个核心部分组成:Core、Format、I18N、SQL和XML。其中,Core组件包含了大部分用于控制流程、...

    JavaWeb-12:自定义标签库开发&JSTL标签库

    二、JSTL标签库 JSTL是Java Web开发的标准标签库,它包含五个核心部分:Core、Format、I18N、XML和SQL。这些标签提供了丰富的功能,例如控制流、格式化、国际化、XML处理和数据库操作。 1. **Core标签**:包括if、...

    JSTL标签库需要导入的Jar包

    以下是关于JSTL标签库所需导入的JAR包及其功能的详细解释: 1. **jstl.jar**:这是核心JSTL库,包含了大部分常用的标签,如 `&lt;c:if&gt;`, `&lt;c:forEach&gt;`, `&lt;fmt:formatDate&gt;` 等。这些标签提供了条件判断、循环、格式...

    JSTL标签库jar包文件

    每个`taglib`元素定义了一个TLD(Tag Library Descriptor)文件的位置,这告诉服务器JSTL标签库的位置和元数据。 总之,JSTL通过提供丰富的标签来增强JSP页面的功能,而解决"无法解析绝对uri"的错误通常涉及到正确...

    JSTL标签库jar包

    - 使用JSTL标签库可以提高代码的可读性和可维护性,降低HTML和Java代码的混合程度。 - 结合EL,可以进一步减少脚本let的使用,使JSP页面更加整洁。 - 注意,JSTL的SQL标签库不适用于复杂的数据库操作,现代Web应用...

    JSTL标签库的下载

    ### JSTL标签库及其下载 #### JSTL概述 JSTL(JavaServer Pages Standard Tag Library,JavaServer页面标准标签库)是一组用于开发JavaServer Pages页面的标准标签集合。这些标签简化了JSP页面的编写工作,使...

    jstl标签库jar包

    **JSTL标签库与JAR包详解** JavaServer Pages Standard Tag Library(JSTL)是Java EE领域中用于简化JSP开发的一个重要工具。它提供了一组预定义的标签,帮助开发者更高效地处理常见任务,如迭代、条件判断、国际化...

    jstl标签库

    【JSTL标签库】是Java服务器页面(JSP)的一种标准标签库,由Sun Microsystems公司发布,旨在简化JSP页面的开发。JSTL提供了一系列预定义的标签,用于处理常见的任务,如数据输出、流程控制、循环、XML处理、国际化...

    JSTL标签库——taglibs-standard jar包

    JSTL标签库——taglibs-standard jar包

    JSTL标签库-tomcat10-简化JSP中java代码

    JSTL(JavaServer Pages Standard Tag Library)是Java Web开发中一个重要的标签库,主要用于简化JSP页面中的Java代码,提高JSP页面的可读性和维护性。在Tomcat 10这个高性能、轻量级的Servlet容器中,JSTL的使用...

    JSTL标签库依赖,内含Tomcat8、Tomcat10所需JSTL依赖

    **JSTL(JavaServer Pages Standard Tag Library)标签库**是Java Web开发中常用的一组预定义的HTML和XML标签,用于简化JavaServer Pages(JSP)开发。它提供了更面向声明的编程方式,使开发者可以更专注于业务逻辑...

    EL表达式与JSTL标签库

    EL表达式与JSTL标签库,挺实用的工具

    JSTL标签库下载配置

    在本资源包中,你将找到两个重要的JSTL相关文件——`jstl.jar`和`standard.jar`,以及一个名为`JSTL标签库配置.doc`的文档,它们是配置和使用JSTL标签库所必需的。 **一、jstl.jar和standard.jar** 1. **jstl.jar*...

    jstl标签库 手册

    JSTL(JavaServer Pages Standard Tag Library)是一个用于JSP的标准标签库,它提供了一系列预定义的标签,简化了常见的编程任务,如控制流程、输出处理、URL管理和数据操作等。JSTL的核心标签库(Core Library)是...

    jstl标签库文档

    ### JSTL标签库知识点详解 #### 1. JSTL简介 JSP标准标签库(JSTL)是Sun Microsystems公司推出的一款用于简化JSP页面开发的强大工具。它的主要目的是减少页面脚本代码量,使得JSP页面更加易于维护和阅读。JSTL...

Global site tag (gtag.js) - Google Analytics