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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<%@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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<%@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页面更具可读性。


原文链接:https://codingdict.com/