JSTL中的TLD配置和使用。

一,JSTL介绍:  

  JSTL标签库,是日常开发经常使用的,也是众多标签中性能最好的。把常用的内容,放在这里备份一份,随用随查。尽量做到不用查,就可以随手就可以写出来。这算是Java程序员的基本功吧,一定要扎实。

  JSTL全名为JavaServer Pages Standard Tag Library。JSTL是由JCP(Java Community Process)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签函数库。

  Web程序员能够利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序的阅读性、维护性和方便性。

二,JSTL配置:

  主要牵涉到两个jar包

  standward.jar和jstl.jar包 (两个包1.0和1.2版本的下载以及TLD下载路径如下:下载路径

  加载方式包括两种

  1,非自动加载

  a,将tld文件copy到WEB-INFO下的tld目录下,没有就创建之

  b,修改web.xml文件配置,添加配置如下 

 1 <jsp-config>
 2   <taglib>
 3    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
 4    <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
 5   </taglib>
 6   <taglib>
 7    <taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
 8    <taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
 9   </taglib>
10   <taglib>
11    <taglib-uri>http://java.sun.com/jstl/fn</taglib-uri>
12    <taglib-location>/WEB-INF/tld/fn.tld</taglib-location>
13   </taglib>
14  </jsp-config>
View Code

  c,jsp中引用taglib

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

  2,自动加载

Servlet2.4规范提供了对tld文件的自动加载,tld文件在standard.jar的META-INF文件夹中。

如:c.tld文件提供了对核心jstl标签的描述

<taglib 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-jsptaglibrary_2_0.xsd"
    version="2.0">
    
  <description>JSTL 1.1 core library</description>
  <display-name>JSTL core</display-name>
  <tlib-version>1.1</tlib-version>
  <short-name>c</short-name>
  <uri>http://java.sun.com/jsp/jstl/core</uri>

可以看到其引用的uri为http://java.sun.com/jsp/jstl/core

则在jsp中引用taglib为: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

三,JSTL核心标签库的使用

JSTL 核心标签库标签共有13个,功能上分为4类:

1.表达式控制标签:out、set、remove、catch

2.流程控制标签:if、choose、when、otherwise

3.循环标签:forEach、forTokens

4.URL操作标签:import、url、redirect

使用标签时,一定要在jsp文件头加入以下代码:

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

下面分别对这些标签进行说明:

1. <c:out> 用来显示数据对象(字符串、表达式)的内容或结果

使用Java脚本的方式为:<% out.println("hello") %>  <% =表达式 %>

使用JSTL标签:<c:out value="字符串">

2. <c:set> 用于将变量存取于 JSP 范围中或 JavaBean 属性中。

3.<c:remove> 主要用来从指定的 jsp 范围内移除指定的变量。使用类似,下面只给出语法:

<c:remove var="变量名" [scope="page|request|session|application"]></c:remove>


4.<c:catch> 用来处理 JSP 页面中产生的异常,并存储异常信息

<c:catch var="name1">

      容易产生异常的代码

</c:catch>

如果抛异常,则异常信息保存在变量 name1 中。

5.<c:if>

<c:if test="条件1" var="name" [scope="page|request|session|application"]></c:remove>

6. <c:choose> <c:when> <c:otherwise> 三个标签通常嵌套使用,第一个标签在最外层,最后一个标签在嵌套中只能使用一次

7.<c:forEach>

语法:<c:forEach var="name" items="Collection" varStatus="statusName" begin="begin" end="end" step="step"></c:forEach>

该标签根据循环条件遍历集合 Collection 中的元素。 var 用于存储从集合中取出的元素;items 指定要遍历的集合;varStatus 用于存放集合中元素的信息。varStatus 一共有4种状态属性,分别为索引,迭代次数,是否第一个元素,是否最后一个元素

8.<c:forTokens> 用于浏览字符串,并根据指定的字符串截取字符串
语法:<c:forTokens items="stringOfTokens" delims="delimiters" [var="name" begin="begin" end="end" step="len" varStatus="statusName"]></c:forTokens>

 

部分文章转自下面博客,更详细的例子详见下面博客:http://www.cnblogs.com/lihuiyy/archive/2012/02/24/2366806.html

原文地址:https://www.cnblogs.com/ningheshutong/p/5780440.html