jsp 语言 如何在 JSP 中使用 JSTL 标签进行条件判断

JSP阿木 发布于 2025-06-26 10 次阅读


在 JSP 中使用 JSTL 标签进行条件判断

JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在 HTML 页面中嵌入 Java 代码。JSTL(JavaServer Pages Standard Tag Library)是一个标准标签库,它提供了一组标签,用于简化 JSP 页面的开发。JSTL 标签库包括核心标签、格式化标签、SQL 标签、XML 标签和函数标签等。本文将重点介绍如何在 JSP 中使用 JSTL 标签进行条件判断。

JSTL 标签库简介

在开始使用 JSTL 标签之前,我们需要在 JSP 页面中引入 JSTL 标签库。这可以通过在 JSP 页面的 `<%@ taglib %>` 指令中完成。

jsp

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


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


在这个例子中,我们使用了 `c` 作为前缀,并指定了 JSTL 核心标签库的 URI。

条件判断标签

JSTL 提供了几个用于条件判断的标签,包括 `<c:if>`, `<c:choose>`, `<c:when>`, `<c:otherwise>` 和 `<c:forEach>`。

`<c:if>` 标签

`<c:if>` 标签用于根据表达式的真假来决定是否执行其内部的代码。

jsp

<c:if test="${user != null}">


<p>Welcome, ${user.name}!</p>


</c:if>


在这个例子中,如果 `user` 对象不为 `null`,则显示欢迎信息。

`<c:choose>`, `<c:when>`, `<c:otherwise>` 标签

这些标签用于多条件判断,类似于 Java 中的 `if-else if-else` 语句。

jsp

<c:choose>


<c:when test="${score >= 90}">


<p>Excellent!</p>


</c:when>


<c:when test="${score >= 80}">


<p>Good!</p>


</c:when>


<c:otherwise>


<p>Not so good...</p>


</c:otherwise>


</c:choose>


在这个例子中,根据 `score` 的值,显示不同的评价。

`<c:forEach>` 标签

`<c:forEach>` 标签用于遍历集合,并对集合中的每个元素执行代码。

jsp

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


<p>${item.name} - ${item.price}</p>


</c:forEach>


在这个例子中,遍历 `items` 集合,并显示每个项目的名称和价格。

实例:用户登录验证

以下是一个使用 JSTL 标签进行用户登录验证的示例。

jsp

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


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


<html>


<head>


<title>Login Page</title>


</head>


<body>


<form action="login.jsp" method="post">


Username: <input type="text" name="username" /><br />


Password: <input type="password" name="password" /><br />


<input type="submit" value="Login" />


</form>


<c:if test="${not empty loginError}">


<p style="color: red;">${loginError}</p>


</c:if>


<c:choose>


<c:when test="${user != null}">


<p>Welcome, ${user.name}!</p>


</c:when>


<c:otherwise>


<p>You are not logged in.</p>


</c:otherwise>


</c:choose>


</body>


</html>


在这个例子中,我们首先创建了一个简单的登录表单。如果登录失败,`loginError` 变量将包含错误信息,并且使用 `<c:if>` 标签显示错误信息。如果用户成功登录,使用 `<c:choose>` 标签显示欢迎信息。

总结

JSTL 标签库为 JSP 开发者提供了一种简单而有效的方式来处理条件判断。通过使用 `<c:if>`, `<c:choose>`, `<c:when>`, `<c:otherwise>` 和 `<c:forEach>` 等标签,可以减少代码量,提高代码的可读性和可维护性。在开发动态网页时,熟练掌握 JSTL 标签的使用将大大提高开发效率。

由于篇幅限制,本文未能涵盖 JSTL 标签库的所有功能。在实际开发中,建议查阅官方文档以获取更详细的信息。