目录
JSTL 的作用与优势
JSTL(JavaServer Pages Standard Tag Library,JSP 标准标签库)是一组自定义标签,用于简化 JSP 页面中的逻辑处理。它替代了传统的脚本(<% %>
),提高了代码可读性和可维护性。JSTL 支持变量操作、流程控制、格式化、数据库访问等功能。
JSTL 的核心标签分类
2.1 核心标签 (Core Tags)
- 前缀:
c
- 常用标签:
<c:out>
:输出变量或表达式。<c:set>
:设置变量。<c:if>
:条件判断。<c:forEach>
:循环遍历。- 示例:
<c:out value="${message}" />
<c:set var="name" value="Alice" />
<c:if test="${count > 0}">正数</c:if>
<c:forEach var="i" begin="1" end="5">${i} </c:forEach>
2.2 格式化标签 (Formatting Tags)
- 前缀:
fmt
- 常用标签:
<fmt:formatDate>
:格式化日期。<fmt:formatNumber>
:格式化数字。- 示例:
<fmt:formatDate value="${now}" pattern="yyyy-MM-dd" />
<fmt:formatNumber value="12345.678" pattern="#,##0.00" />
2.3 SQL 标签 (SQL Tags)
- 前缀:
sql
- 常用标签:
<sql:query>
:执行查询。<sql:update>
:执行更新。- 示例:
<sql:query var="result" dataSource="jdbc/myDB">
SELECT * FROM users
</sql:query>
2.4 XML 标签 (XML Tags)
- 前缀:
x
- 常用标签:
<x:parse>
:解析 XML。<x:out>
:输出 XML 数据。- 示例:
<x:parse var="doc" xml="${xmlData}" />
<x:out select="$doc//name" />
使用 JSTL 的步骤
- 添加依赖:
- Maven:
xml <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
- 引入标签库:
- 在 JSP 文件顶部添加指令:
jsp <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
示例代码
- 基础 JSTL 示例(jstlDemo.jsp):
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%
request.setAttribute("count", 10);
request.setAttribute("now", new java.util.Date());
%>
<h3>JSTL 示例</h3>
<p>计数: <c:out value="${count}" /></p>
<c:if test="${count > 0}">
<p>计数是正数</p>
</c:if>
<p>循环: <c:forEach var="i" begin="1" end="3">${i} </c:forEach></p>
<p>当前日期: <fmt:formatDate value="${now}" pattern="yyyy-MM-dd HH:mm:ss" /></p>
- 遍历集合(jstlLoop.jsp):
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
java.util.List<String> names = java.util.Arrays.asList("Alice", "Bob", "Charlie");
request.setAttribute("names", names);
%>
<h3>名字列表</h3>
<ul>
<c:forEach var="name" items="${names}">
<li>${name}</li>
</c:forEach>
</ul>
参考资料
- Oracle 官方文档
- JSTL Overview
- 出站链接:https://docs.oracle.com/javaee/5/tutorial/doc/bnakc.html
- 提供 JSTL 的官方说明。
- JavaTpoint JSTL 教程
- JSP JSTL
- 出站链接:https://www.javatpoint.com/jstl
- 详细讲解 JSTL 的用法和示例。
- TutorialsPoint JSTL 教程
- JSP – Standard Tag Library (JSTL)
- 出站链接:https://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm
- 简洁的 JSTL 入门教程。
如果需要更复杂的 JSTL 示例(如结合数据库查询),请告诉我!
发表回复