虽然JSTL叫做标准标签库,但实际上它是由5个功能不同的标签库组成。这5个标签库分别是核心标签库,格式标签库,SQL标签库,XML标签库和函数标签库。在使用这些标签库之前,必须在JSP页面的顶部使用<%@taglib%>指令定义引用的标签库和访问前缀。
使用核心标签库的taglib指令格式如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
使用格式标签库的taglib指令格式如下:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
使用SQL标签库的taglib指令格式如下:
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
使用XML标签库的taglib指令格式如下:
<%@ taglib prefix="xml" uri="http://java.sun.com/jsp/jstl/xml"%>
使用函数标签库的taglib指令格式如下:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
下面对JSTL提供的这五个标签库分别进行简要介绍。
1.核心标签库
核心标签库主要用于完成JSP页面的常用功能,包括JSTL的表达式标签,URL标签,流程控制标签和循环标签共四种标签。其中,表达式标签包括<c:out>,<c:set>,<c:remove>,<c:catch>;URL标签包括<c:import>,<c:redirect>,<c:url>,<c:param>;流程控制标签包括<c:if>,<c:choose>,<c:when>,<c:otherwise>;循环标签包括<c:foreach>,<c:forTokens>。这些标签的基本作用如下表所示:
标签 | 说明 |
<c:out> | 将表达式的值输出到JSP页面中,相当于JSP表达式<%=表达式%> |
<c:set> | 在指定范围内定义变量,或者为指定的对象设置属性值 |
<c:remove> | 从指定的JSP范围中移除指定的变量 |
<c:catch> | 捕获程序中出现的异常,相当于Java语言中的try...catch语句 |
<c:import> | 导入站内或者其他网站的静态或者动态文件到web界面 |
<c:redirect> | 将客户端发出的request请求重定位到其他URL服务端 |
<c:url> | 使用正确的URL重写规则构造一个URL |
<c:param> | 为其他标签提供参数信息,通常与其他标签结合使用 |
<c:if> | 根据不同的条件处理不同的业务,与Java语言中的if语句类似,只不过该语言没有else标签 |
<c:choose> | 根据不同的条件完成指定的业务逻辑,如果没有符合的条件,则会执行默认条件的业务逻辑,相当于Switch语句 |
<c:foreach> | 根据循环条件,遍历数组和集合类中的所有或者部分数据 |
<c:forTokens> | 迭代字符串中由分隔符分隔的成员 |
2.格式标签库
格式标签库提供了一个简单的国际化标记,也被称为I18N标签库,用于处理和解决国际化相关的问题。另外,格式标签库中还包含用于格式化数字和日期显示格式的标签。由于该标签在实际项目中并不经常使用,这里不做详细介绍。
3.SQL标签库
SQL标签库提供了基本的访问关系型数据的能力。使用SQL标签,可以简化对数据库的访问。如果结合核心标签库,可以方便的获取结果集,并迭代输出结果集中的数据。由于该标签在实际项目中并不经常使用,这里不做详细介绍。
4.XML标签库
XML标签库可以处理和生成XML的标记,使用这些标记可以很方便的开发基于XML的WEB应用。由于该标签在实际项目中并不经常使用,这里不做详细介绍。
5.函数标签库
函数标签库提供了一系列字符串操作函数,用于完成分解字符串,连接字符串,返回子串,确定字符串是否包含特定的子串功能。由于该标签在实际项目中并不经常使用,这里不做详细介绍。