- JSTL是一个实现 Web 应用程序中常见的通用功能的定制标记库集
- 功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问
- JSTL标签库由几个子标签库组成,主要分为以下几种:核心标签、XML标签、格式化标签(I18N)、SQL标签、函数标签库
- 在JSP中使用taglib伪指令导入JSTL标签库
<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%> 导入JSTL核心标签库
JSTL核心标签库
- <c:catch> 捕获JSP页面抛出的异常
- <c:out> 打印输出内容到页面
– 属性value包含特殊字符,使用转义字符
– value值没有取到,使用default属性指定默认值
- <c:set> 标签设置变量值或对象的属性值
– < c:set var=“num” value=“ $ {4*4}” />
– < c:set target=“user”property=“userName”>${“susan”}< /c:set>
- <c:remove> 用于从指定作用域内删除变量
– <c:remove var=“num”scope=“session”/>
- <c:if> 与Java语言的if语句最大的不同是没有else语句对应标签
– <c:if test=“$ {x==9}”>${x}</c:if>
- <c:choose> 类似Java的switch-case语句。
– 该标签只当做 <c:when>和<c:otherwise> 的父标签
- <c:forEach>和<c:forTokens> 类似于Java的for语句
– <c:forTokens>
– <c:forEach>使用begin、end、step属性指定循环次数
打印结果:
–对于集合和字符串使用items属性指定循环对象
–<c:forEach>提供varStatus属性,用来存放现在指到的成员的信息。另外四个属性:
• index:现在指到成员的索引
• count:总共指到成员的总数
• first:现在指到的成员是否为第一个成员
• last:现在指到的成员是否为最后一个成员 - 处理与URL相关的标签
– <c:url>用来产生一个URL,“/”表示上下文路径
– <c:import>可以把其他静态或动态文件包含至本身JSP页面。与JSP动作jsp:include的不同在于<c:import>可以包含位于Web程序之外的资源
– <c:redirect>用于把客户请求重定向到另一个资源
SQL标签
- 引用SQL标签库的语法如下:
<%@ taglib prefix=“sql” uri=“http://java.sun.com/jsp/jstl/sql” %>
XML 标签
- 引用XML标签库的语法如下:
<%@ taglib prefix=“x” uri=“http://java.sun.com/jsp/jstl/xml” %> - 在使用xml标签前,还需要导入XercesImpl.jar和xalan.jar库
JSTL函数
- 引用JSTL函数库的语法如下:
<%@ taglib prefix=“fn” uri=“http://java.sun.com/jsp/jstl/functions” %>