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页面更具可读性。