我收到一个空的html / jsp表,没有提取数据

时间:2013-12-30 11:22:55

标签: java mysql jsp tomcat

我在同一个论坛上发了四天寻找解决方案的帖子,但我一直在检查任何解决方案但是徒劳无功。我真的可以堆叠,因为我可以继续掌握JSP,这是我2014年网络编程计划的一个非常大的包裹。我是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 info:

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>

3 个答案:

答案 0 :(得分:0)

默认情况下mysql端口 3306 ,您可以通过更改网址进行检查,如下所示吗?  url="jdbc:mysql://localhost:3306/EMP"

答案 1 :(得分:0)

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>

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

答案 2 :(得分:0)

试试这个:

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