JSP标准标记库(JSTL)的介绍
JSP是为web应用程序中的表现层而设计的,但页面中需要包含逻辑或代码,以控制元素的显示。
自从JSP被发明以来,scriptlet开始被大量使用,HTML与JSP scriptlet、左大括号和右大括号的混合使得JSP页面很难扩展。JSP页面变得杂乱无章,难以维护。
2002年6月,JavaServerPages Standard Tag Library(JSTL)规范1.0首次发布。
JSTL为JSP的开发者们提供了使用标准友好的标记来处理不同元素的新方法。
JSP标准标记库(JSTL)被以下四个标记库:
- 核心标记库
- 国际化(i18l)和格式化标记库
- 关系数据库访问标记库
- XML处理标记库
通过提供友好的XML基标记简化编写JSP页面的任务,
在页面的表示层中提供了可复用的逻辑,
使JSP页面更易于阅读和维护。
核心标记库
顾名思义,核心标记库为JSP提供核心功能操作,使最常见的操作更容易更有效实现。
核心标记指定了几个操作,比如根据条件来显示内容、操作集合以及进行URL管理。
通过使用核心标记,您就不用再写小的scriptlet。(但是您仍然需要了解scriptlet的用法,以便维护遗留的web应用程序,或者在需要时将它们转换为JSTL)。
国际化(I18L)和格式化标记
国际化(I18L)和格式化标记指定了一系列操作,以使web应用程序支持多语言。这些操作包括管理资源包、地区以及基本名称。
关系数据库访问标记
访问数据库是web应用程序最主要的任务之一。JSTL提供了一个标准标记列表来帮助您操作数据,比如从关系数据库中进行select, insert, update 以及 delete等操作
XML处理标签
XML已成为企业web应用程序进行数据交换的的标准。因此,有效地操作XML对于大多数web应用程序非常重要,当然,JSTL还提供了一个标记列表,用于从XML解析到XML转换的处理。
JSTL示例
让我们来看一个示例,看看如何分别使用scriptlet和JSTL来实现相同的JSP页面。
使用 scriptlet
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP scritlet</title>
<style type="text/css">
.odd{background-color:white}
.even{background-color:gray}
</style>
</head>
<body>
<table border="1" width="100px">
<% for (int c = 1; c < 10; c++) {
if (c % 2 == 0) {
%>
<tr class="even">
<td><%= c%></td>
</tr>
<% } else {%>
<tr class="odd">
<td><%= c%></td>
</tr>
<%}
}%>
</table>
</body>
</html>
使用 JSTL
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core"
prefix="c" %>
<html>
<head>
<title>JSTL page</title>
<style type="text/css">
.odd{background-color:white}
.even{background-color:gray}
</style>
</head>
<body>
<table border="1" width="100px">
<c:forEach begin="1" end="10" step="1" var="c">
<c:choose>
<c:when test = "${c%2 ==0}">
<tr class="even">
<td><c:out value="${c}" /></td>
</tr>
</c:when>
<c:otherwise>
<tr class="odd">
<td><c:out value="${c}" /></td>
</tr>
</c:otherwise>
</c:choose>
</c:forEach>
</table>
</body>
</html>
使用JSTL的JSP页面看起来比使用scriptlet的JSP页面更具可读性。
