【问题标题】:I'm receiving an empty html/jsp table with no data extracted我收到一个没有提取数据的空 html/jsp 表
【发布时间】: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.2mysql connector jar 文件并清理您的项目,然后再次运行。
  • 请帮个忙,请删除您在Link1Link2 发布的所有相关问题。

标签: java mysql jsp tomcat


【解决方案1】:

默认mysql端口是3306,你可以通过如下改变url来检查吗? url="jdbc:mysql://localhost:3306/EMP"

【讨论】:

  • @Vinoth,thanx 但没有任何变化我仍然收到一个空的 html 表。
  • @Vinoth Krishna ,谢谢你是我的英雄,在将 .jar 文件一一扭曲后,我最终将所有文件放在了我的原始文件夹中:Tomcat7.0\lib\.... 和它在那里工作。
【解决方案2】:

sql和(:)之间不会有空格,你需要这样保持,

<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
 url="jdbc:mysql://localhost/TEST"
 user="root"  password="pass123"/>

<sql:query dataSource="${snapshot}" var="result">
SELECT * from Employees;
</sql:query>

您需要做的就是在您的/WEB-INF/lib 文件夹中添加jstl 1.2mysql connector jar 文件并清理您的项目然后再次运行。

【讨论】:

  • @Vinoth 我一直在使用这个根文件夹:CLASSPATH: C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib 但刚刚发现一个是:C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\examples\WEB-INF\lib 我猜这可能是正确的文件夹。让我添加 .jar 文件并重新运行该项目。我会立即公布我的判决。
  • 如果它有效,请将其标记为已接受的答案,这样每个人都会从这个答案中受益。
【解决方案3】:

试试这个:

<tr>
<td>${row.id}</td>
<td>${row.age}</td>
<td>${row.first}</td>
<td>${row.last}</td>

【讨论】:

  • 谢谢,但没有任何变化......但是我从 Vinoth 那里得到了解决方案。
猜你喜欢
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
相关资源
最近更新 更多