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