编程自学指南:java程序设计开发,JSP 中的标签库基础知识介绍
一、课程信息
学习目标
- 理解 JSP 标签库的概念和作用。
- 掌握 JSTL 核心标签库的常用标签及其使用方法。
- 学会使用 JSTL 格式化标签库进行日期和数字的格式化。
- 能够运用标签库简化 JSP 页面的开发,提高代码的可读性和可维护性。
二、课程导入
生活实例引入
想象你在组装一个复杂的模型,每次都要从头开始制作每个小零件会非常麻烦。但如果有一套标准化的零件,你只需要按照说明把它们组合起来,就能快速完成模型的组装。在 JSP 开发中,标签库就像是这些标准化的零件,它提供了一系列预定义的标签,让你可以更方便、高效地开发 JSP 页面,避免重复编写相似的代码。
提问引导
让学生思考在之前的 JSP 开发中,是否有一些代码是经常重复编写的,引导他们意识到标签库可以解决这个问题。
三、JSP 标签库概述
什么是 JSP 标签库
JSP 标签库是一组自定义的标签,这些标签可以在 JSP 页面中使用,用于实现特定的功能。标签库将 Java 代码封装在标签中,使得 JSP 页面的代码更加简洁、易读,同时也提高了代码的复用性。
标签库的作用
- 简化代码:减少 JSP 页面中的 Java 代码,使页面结构更清晰。
- 提高开发效率:使用预定义的标签,避免重复编写相似的代码。
- 增强可读性和可维护性:标签的含义明确,易于理解和修改。
常见的 JSP 标签库
- JSTL(JavaServer Pages Standard Tag Library):Java 官方提供的标准标签库,包含核心标签库、格式化标签库、SQL 标签库等。
- 自定义标签库:开发人员根据自己的需求创建的标签库。
四、JSTL 核心标签库
引入 JSTL 标签库
在JSP 页面中使用 JSTL 标签库,需要先引入标签库。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
这里的 uri
指定了标签库的唯一标识符,prefix
是标签库的前缀,在使用标签时需要加上这个前缀。
常用标签及示例
<c:out>
标签
用于输出表达式的值,相当于 JSP 表达式(<%= ... %>
),但更安全,会自动对特殊字符进行转义。
<c:out value="${user.name}" default="未指定姓名" />
<c:set>
标签
用于设置变量的值,可以将值存储在不同的作用域中(page、request、session、application)。
<c:set var="message" value="欢迎访问本网站" scope="request" />
<c:if>
标签
用于条件判断,类似于 Java 中的 if
语句。
<c:if test="${user.age >= 18}">
<p>您已成年,可以访问该内容。</p>
</c:if>
<c:choose>
、<c:when>
和 <c:otherwise>
标签
用于多条件判断,类似于 Java 中的 if - else if - else
语句。
<c:choose>
<c:when test="${score >= 90}">
<p>成绩优秀!</p>
</c:when>
<c:when test="${score >= 60}">
<p>成绩及格。</p>
</c:when>
<c:otherwise>
<p>成绩不及格,请加油!</p>
</c:otherwise>
</c:choose>
<c:forEach>
标签
用于遍历集合或数组。
<c:forEach items="${students}" var="student">
<p>姓名:${student.name},年龄:${student.age}</p>
</c:forEach>
五、JSTL 格式化标签库
引入格式化标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
常用标签及示例
<fmt:formatDate>
标签
用于格式化日期。
<fmt:formatDate value="${currentDate}" pattern="yyyy-MM-dd HH:mm:ss" />
<fmt:formatNumber>
标签
用于格式化数字。
<fmt:formatNumber value="${price}" pattern="###,###.00" />
六、JSP 标签库实际案例
案例一:显示学生列表
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<title>学生列表</title>
</head>
<body>
<h1>学生列表</h1>
<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<c:forEach items="${students}" var="student">
<tr>
<td><c:out value="${student.name}" /></td>
<td><c:out value="${student.age}" /></td>
</tr>
</c:forEach>
</table>
</body>
</html>
案例二:显示商品价格和日期
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html>
<html>
<head>
<title>商品信息</title>
</head>
<body>
<h1>商品信息</h1>
<p>商品名称:<c:out value="${product.name}" /></p>
<p>商品价格:<fmt:formatNumber value="${product.price}" pattern="###,###.00" /> 元</p>
<p>上架日期:<fmt:formatDate value="${product.date}" pattern="yyyy-MM-dd" /></p>
</body>
</html>
七、课堂练习
练习一
使用 JSTL 核心标签库,编写一个 JSP 页面,显示 1 到 10 的数字。
练习二
使用 JSTL 格式化标签库,编写一个 JSP 页面,显示当前日期和时间,格式为 “2024 年 10 月 1 日 14:30:00”。
八、课程总结
知识回顾
- 回顾 JSP 标签库的概念和作用。
- 总结 JSTL 核心标签库和格式化标签库的常用标签及其使用方法。
口诀总结
- “JSP 标签库真好,简化代码效率高。核心标签功能妙,条件循环少不了。格式化标签也重要,日期数字处理好。合理运用标签库,Web 开发没烦恼。”
九、课后作业
作业一
完善课堂上的学生列表案例,添加分页功能,使用 JSTL 标签库实现分页导航。
作业二
研究并尝试使用自定义标签库,创建一个简单的标签,用于输出当前系统的运行时间。