我在同一个论坛上发了四天寻找解决方案的帖子,但我一直在检查任何解决方案但是徒劳无功。我真的可以堆叠,因为我可以继续掌握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>
答案 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>