目录

  1. JSTL 的作用与优势
  2. JSTL 的核心标签分类
  1. 使用 JSTL 的步骤
  2. 示例代码
  3. 参考资料

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 的步骤

  1. 添加依赖
  • Maven:
    xml <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
  1. 引入标签库
  • 在 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>

参考资料

  1. Oracle 官方文档
  1. JavaTpoint JSTL 教程
  1. TutorialsPoint JSTL 教程

如果需要更复杂的 JSTL 示例(如结合数据库查询),请告诉我!