【发布时间】:2014-01-17 06:39:54
【问题描述】:
四天前,我在同一个论坛上发帖寻求解决方案,但我一直在检查任何解决方案,但徒劳无功。我真的很累,因为我无法继续掌握 JSP,这对于我 2014 年的 Web 编程计划来说是一个非常重要的部分。我是 JSP 和数据库访问的新手……所以我请求您的帮助。
问题:
我有一个简单的 MySQL 数据库,并设计了一个 JSP 页面来显示从数据库中提取的数据。我通过命令行尝试并测试了它,是的,数据被完美提取。然而,返回的 JSP 页面显示一个带有四个列标题的空 html 表格,其内容类似于 以下:
SELECT * from Employees;
ID Age First Name Last Name
以下是数据库信息:
database - 'EMP'.
table - 'Employees'.
Columns; id; age; first; last.
data; 100; 28; Zaid; Khan.
password - 'password'
下面是JSP代码:
<%@ page import="java.io.*, java.util.*, java.sql.*" %>
<%@ page import="javax.servlet.http.*, javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<html>
<head>
<title>SELECT operation</title>
</head>
<body>
<sql : setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/EMP"
user="root" password="password"/>
<sql : query dataSource="${snapshot}" var="result">
SELECT * from Employees;
</sql : query>
<table border="1" width="100%">
<tr>
<th>Emp ID</th>
<th>Age</th>
<th>First Name</th>
<th>Last Name</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
<td><c:out value="${row.id}"/></td>
<td><c:out value="${row.age}"/></td>
<td><c:out value="${row.first}"/></td>
<td><c:out value="${row.last}"/></td>
</tr>
</c:forEach>
</table>
</body>
</html>
但是我对下面的代码持怀疑态度(我从 JSP 程序代码中提取了代码),因为当我尝试关闭自定义标签的双冒号 (:) 前后的空白时,我会收到一个运行时间错误信息。
<sql : setDataSource
<sql : query dataSource
</sql : query>
下面是根文件夹和类路径:
JSP page: C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\jsp pages\RegName.jsp
CLASSPATH: C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib\jsp-api.jar;C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib\jstl-1.2.jar;C:\glassfish3\jdk\jre\lib;C:\Program Files (x86)\MySQL\MySQL Connector J\mysql-connector-java-5.1.27-bin.jar
JAVA_HOME: C:\glassfish3\jdk
Path:C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin; C:\glassfish3\jdk\bin;C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin
Browser access of JSP: http://localhost:8080/jsp pages/FirstExample.jsp
下面是命令行mysql信息:
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.0.41-community-nt MySQL Community Edition (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
【问题讨论】:
-
希望您已经关注Tutorial,但请发布完整的错误堆栈跟踪以诊断问题。
-
它工作得非常完美。您需要做的就是复制上面 URL 中的代码,并在您的
/WEB-INF/lib文件夹中添加jstl 1.2和mysql connectorjar 文件并清理您的项目,然后再次运行。