JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
有些公司不是很常用jstl标签库,因为业务逻辑代码都写在jsp页面会导致页面混乱,耦合性高,但是因为是sun公司的标准,我们还是应该去了解一下的。如果是纯jsp页面的项目的话,就比较推荐使用jstl标签库了,它能轻易完成很多java需要通过大量编码才能实现的功能。jstl标签库还是很强大的。
本篇博文使用jstl标签库在jsp页面展示数据库的数据,所以就需要事先创建一个数据库以备使用:
新建 books 数据库--->新建 book 表--->表的字段分别为id、bookName、author、price--->插入几条数据
*************************************************************************************************************************************************
新建一个Dynamic web project--->转换成Maven项目,在pom.xml配置以下内容:
如何转换成Maven项目?请点击:【http://blog.csdn.net/weixin_36146275/article/details/54972744】
<dependencies>
<!-- jstl标签库 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- JDBC驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
</dependencies>
这样就导入了jstl标签库和JDBC的jar包:
*************************************************************************************************************************************************
接下来创建index.jsp,导入要用到的标签库:
<!-- 导入jstl库的核心c标签、sql标签 -->
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
数据库操作:
<sql:setDataSource>详解:【http://www.runoob.com/jsp/jstl-sql-setdatasource-tag.html】
<!-- 配置数据源连接信息 -->
<sql:setDataSource
var="db"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/books?useSSL=false"
user="root"
password="123456"
/>
<!-- 连接数据库,执行条件查询语句访问数据库,返回一个数据库对象的集合 -->
<sql:query var="queryResult" dataSource="${db}" sql="select * from book"/>
遍历输出查询结果:
<c:forEach>详解:【http://www.runoob.com/jsp/jstl-core-foreach-tag.html】
<table border="1">
<tr>
<th>序号</th>
<th>书名</th>
<th>作者</th>
<th>售价</th>
</tr>
<c:forEach items="${queryResult.rows}" var="book">
<tr>
<td><c:out value="${book.id}"></c:out></td>
<td><c:out value="${book.bookName }"></c:out></td>
<td><c:out value="${book.author }"></c:out></td>
<td><c:out value="${book.price }"></c:out></td>
</tr>
</c:forEach>
</table>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 导入jstl库的核心c标签、sql标签 -->
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>春季购书清单</title>
</head>
<body>
<!-- 配置数据源连接信息 -->
<sql:setDataSource var="db" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/books?useSSL=false" user="root"
password="123456" />
<!-- 连接数据库,执行条件查询语句访问数据库,返回一个数据库对象的集合 -->
<sql:query var="queryResult" dataSource="${db}"
sql="select * from book" />
<table border="1">
<tr>
<th>序号</th>
<th>书名</th>
<th>作者</th>
<th>售价</th>
</tr>
<c:forEach items="${queryResult.rows}" var="book">
<tr>
<td><c:out value="${book.id}"></c:out></td>
<td><c:out value="${book.bookName }"></c:out></td>
<td><c:out value="${book.author }"></c:out></td>
<td><c:out value="${book.price }"></c:out></td>
</tr>
</c:forEach>
</table>
</body>
</html>