jsp 语言 JSP 标准标签库的格式化标签

JSP阿木 发布于 2025-07-02 10 次阅读


JSP 标准标签库的格式化标签:深入解析与实例应用

JavaServer Pages (JSP) 是一种动态网页技术,它允许开发者使用 Java 代码来创建动态网页。JSP 标准标签库(JSTL)是一组在 JSP 页面中使用的标签,它提供了对常用功能的封装,使得开发者可以不用编写 Java 代码就能实现复杂的逻辑。格式化标签是 JSTL 中的一类标签,用于处理数据的格式化显示。本文将围绕 JSP 标准标签库的格式化标签进行深入解析,并通过实例展示其应用。

JSTL 格式化标签概述

JSTL 的格式化标签主要分为以下几类:

1. `<c:out>`:输出数据。

2. `<c:format>`:格式化数据。

3. `<c:choose>`、`<c:when>`、`<c:otherwise>`:条件判断。

4. `<c:forEach>`:循环遍历。

一、`<c:out>` 标签

`<c:out>` 标签用于输出数据,它可以输出字符串、对象、表达式等。下面是一个简单的例子:

jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<html>


<head>


<title>Output Example</title>


</head>


<body>


<c:out value="Hello, World!" />


</body>


</html>


在这个例子中,`<c:out>` 标签将输出 "Hello, World!"。

二、`<c:format>` 标签

`<c:format>` 标签用于格式化数据,它可以格式化日期、数字等。下面是一个日期格式化的例子:

jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>


<html>


<head>


<title>Format Example</title>


</head>


<body>


<c:out value="${date}" />


<fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss" />


</body>


</html>


在这个例子中,`<fmt:formatDate>` 标签将日期格式化为 "yyyy-MM-dd HH:mm:ss" 格式。

三、`<c:choose>`、`<c:when>`、`<c:otherwise>` 标签

这些标签用于条件判断,类似于 Java 中的 if-else 语句。下面是一个简单的条件判断例子:

jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<html>


<head>


<title>Choose Example</title>


</head>


<body>


<c:choose>


<c:when test="${number > 10}">


Number is greater than 10


</c:when>


<c:otherwise>


Number is not greater than 10


</c:otherwise>


</c:choose>


</body>


</html>


在这个例子中,如果 `number` 的值大于 10,则输出 "Number is greater than 10";否则输出 "Number is not greater than 10"。

四、`<c:forEach>` 标签

`<c:forEach>` 标签用于循环遍历集合,类似于 Java 中的 for-each 循环。下面是一个遍历数组的例子:

jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<html>


<head>


<title>ForEach Example</title>


</head>


<body>


<c:forEach var="item" items="${items}" varStatus="status">


${status.index} - ${item}


</c:forEach>


</body>


</html>


在这个例子中,`items` 是一个数组,`<c:forEach>` 标签将遍历这个数组,并输出每个元素的索引和值。

实例应用

以下是一个使用 JSTL 格式化标签的完整实例,它展示了如何在一个购物车页面中格式化显示商品信息:

jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>


<html>


<head>


<title>Shopping Cart</title>


</head>


<body>


<h1>Shopping Cart</h1>


<c:forEach var="item" items="${cart.items}" varStatus="status">


<div>


<h2>${status.index + 1}. ${item.name}</h2>


<p>Price: <fmt:formatNumber value="${item.price}" pattern="." /></p>


<p>Quantity: ${item.quantity}</p>


<p>Total: <fmt:formatNumber value="${item.price item.quantity}" pattern="." /></p>


</div>


</c:forEach>


<h2>Total Price: <fmt:formatNumber value="${cart.totalPrice}" pattern="." /></h2>


</body>


</html>


在这个例子中,我们假设有一个购物车对象 `cart`,它包含了一个商品列表 `items` 和总价 `totalPrice`。我们使用 `<c:forEach>` 标签遍历商品列表,并使用 `<fmt:formatNumber>` 标签格式化价格和总价。

总结

JSP 标准标签库的格式化标签为开发者提供了强大的工具,用于在 JSP 页面中处理数据的格式化显示。通过使用这些标签,开发者可以减少 Java 代码的编写,提高代码的可读性和可维护性。本文对 JSTL 格式化标签进行了概述和实例解析,希望对读者有所帮助。