标准标签库 JSTL

JSTL(Java Server Pages Standard Tag Library)是Java Web开发中的标准标签库,提供核心、国际化、SQL、XML和函数五大类标签。它简化了JSP编程,增强了可移植性和维护性。本文介绍了JSTL的基本概念、优点以及各标签库的详细使用,包括设置本地化环境、日期格式化、SQL操作和XML处理。此外,还展示了JSTL在实际应用中的综合实例。
摘要由CSDN通过智能技术生成

一、JSTL简介

  标准标签库 JSTL 的全名为 Java Server Pages Standard Tag Library。它是由 JCP( Java CommnunityProcess)所指定的标准规范,它主要是给 Java Web 开发者提供了一个标准的通用标签库。通过 JSTL,可以部分地取代传统 JSP 程序中嵌入 Java 代码的做法,可以使得 JSP 页面程序的风格趋于统一,并且容易维护。
  从 JSP1.1 规范开始就开发支持在 JSP 文件中使用自定义标签了,就是因为自定义标签的广泛使用,从而使得大量的同功能标签不断地重复定义,为了减少对解决类似通用问题的独立标记库的需求,在Java Community Process( JSR 52)的赞助下创建了 JSTL( JavaServer Pages Standard Tag Library, JSTL)标准标记库,为解决这些通用功能提供一个单一的标准解决方案。
  JSTL 是一个开放源代码的 JSP 标签库,并且还在不断地完善过程中。 JSTL 特别为条件处理、迭代、国际化、数据库访问和可扩展标记语言( XML)处理提供支持。 JSTL 还引入了 expression language( EL,表达式语言),极大地简化了对 JSP 中应用数据的访问和操作。
JSTL 至今主要为开发者提供了如下五大类的标签库:

  1. 核心标签库:为日常任务提供通用支持,如显示和设置变量、重复使用一组项目、测试条件以及其他操作(如导入和重定向 Web 页面等)。
  2. 国际化( I18N)标签库:支持多国语种的应用程序。
  3.  SQL 标签库:对访问和修改数据库提供标准化支持。
  4.  XML 标签库:对 XML 文件处理和操作的支持,包括 XML 节点的解析、迭代、基于 XML 数据的条件评估以及可扩展样式语言转换( Extensible Style Language Transformations, XSLT)的执行。
  5. 函数标签库:通过在 EL 表达式中调用函数标签库中的函数来实现特定的操作。例如${fn:contains(string, substring)},判断 string 字符串中是否包含 substring 字符串。

 展示了各标签库的使用方法:

标签库 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:functionName()

具体配置和引入方式可参考:JSTL配置&pom配置
  JSTL(标准标签库)的使用对 JSP/servlet 开发者来说是一个重大的进展,因为它存在很多的优点,并且很有可能在不久的将来成为实现动态、基于 Java 站点的一个主要方法。概括起来, JSTL 主要的优点如下:

  1. 在所有的应用服务器之间提供了一致的接口程序,这样可以最大程度地提供 Web 应用程序在各种应用服务器之间的可移植性。
  2. 简化了 JSP 的 Web 应用系统的开发,并且使得 JSP 页面的编程风格统一、易于维护。
  3. 大量使用 JSTL 提供的逻辑操作(例如迭代、判断,甚至数据库访问),可以大大减少 JSP 中脚本代码( Scriptlets)的数量,甚至可以没有任何脚本代码就可以实现其大部分动态效果。
  4. 运行 JSP 设计工具与 Web 应用程序开发的进一步集成,虽然现在支持 JSTL 开发的 IDE 开发工具还没有出现(或者正是由于这个原因,使得 JSTL 还不这么流行),但是可以相信不久就会有支持JSTL 的开发工具出现。

  JSTL 已经封装了 JSP 中很多常用的功能,比如,可以使用 JSTL 中的标签来进行迭代输出某个 List或者 Set 集合类。
注意:由于从 JSP1.1 规范才开始支持 JSP 中的自定义标签,所以 JSTL 需要运行在支持 JSP1.2 和Servlet2.3 规范的容器上,比如 Tomcat4.x 和 Tomcat5.x 服务器。

二、详细介绍

注:下面只列举出主要的知识点,详细的会链接到<菜鸟教程>,当然也可以直接参考菜鸟教程。而且下面讲述的都是在已经配置好JSTL环境的条件下进行的。

注:在JSTL标签中运用到了EL表达式,像${}这样的语法,了解EL表达式可以参考:EL表达式—学习笔记

2.1 核心标签库

核心标签是最常用的JSTL标签,引用核心标签库的语法如下:

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

分类:

  • 表达式操作标签:表达式操作标签包括 out、 set、 remove 和 catch
  • 流程控制标签:用于流程控制的标签,其中包括: if、 choose、 when 与 otherwise 等
  • URL相关的标签:与 URL 相关的标签主要是用来将其他文件包含进来,或者提供页面之间的重定位以及 URL 地址的生成、参数的输出等等。包括如下几个标签
    • <c:import>标签:与传统 JSP 页面中的<jsp:include>标记相类似
    • <c:redirect>标签:进行页面的重定位
    • <c:url>:主要是用来重写 URL 地址
    • <c:param>:一般 param 标签会和别的标签一起配套使用,用于参数值的传递

详细标签

标签 描述
<c:out> 用于在JSP中显示数据,就像<%= ... >
<c:set> 用于保存数据
<c:remove> 用于删除数据
<c:catch> 用来处理产生错误的异常状况,并且将错误信息储存起来
<c:if> 与我们在一般程序中用的if一样
<c:choose> 本身只当做<c:when>和<c:otherwise>的父标签
<c:when> <c:choose>的子标签,用来判断条件是否成立
<c:otherwise> <c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
<c:import> 检索一个绝对或相对 URL,然后将其内容暴露给页面
<c:forEach> 基础迭代标签,接受多种集合类型
<c:forTokens> 根据指定的分隔符来分隔内容并迭代输出
<c:param> 用来给包含或重定向的页面传递参数
<c:redirect> 重定向至一个新的URL.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值