【发布时间】:2016-06-19 01:45:27
【问题描述】:
我在 DAO 中创建了 Arraylist,并在 servlet 中使用了这个列表。数组列表的结果显示在 jsp 页面中。
DAO
package com.dao;
import com.database.DBConnection;
import com.mysql.jdbc.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class ListDAO {
String status=null;
Connection con= null;
PreparedStatement pst=null;
ResultSet rs = null;
private DBConnection conn;
public ListDAO() {
con = DBConnection.getConnection();
}
public ArrayList<String> getAllUser() throws SQLException {
ArrayList<String> allUser = new ArrayList<String>();
try {
con = DBConnection.getConnection();
String queryList = "SELECT name, last_name, zip, phone_no, start_time, end_time, quantity," +
"type, order, logo FROM Database.user_info";
pst = con.prepareStatement(queryList);
rs = pst.executeQuery();
while (rs.next()) {
allUser .add(rs.getString("name"));
allUser .add(rs.getString("last_name"));
allUser .add(rs.getString("zip"));
allUser .add(rs.getString("phone_no"));
allUser .add(rs.getString("start_time"));
allUser .add(rs.getString("end_time"));
allUser .add(rs.getString("quantity"));
allUser .add(rs.getString("type"));
allUser .add(rs.getString("order"));
allUser .add(rs.getString("logo"));
}
}
catch (SQLException e) {
e.printStackTrace();
}
finally {
if(rs!=null) {
try {
rs.close();
} catch(SQLException logOrIgnore) {}
}
if(pst!=null) {
try {
pst.close();
} catch (SQLException logOrIgnore) {}
}
if(con!=null) {
try {
con.close();
} catch(SQLException logOrIgnore) {}
}
}
return allUser;
}
}
这个数组列表传入下面给出的servlet:
Servlet
package com.servlet;
import com.dao.ListDAO;
import com.database.DBConnection;
import com.mysql.jdbc.Connection;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/checkLogin")
public class LoginServlet extends HttpServlet {
Connection con= null;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ListDAO Vendors = new ListDAO();
if(!userValidate.equals("FALSE")) {
//Login verified user
try {
con = DBConnection.getConnection();
ArrayList<String> allUser = Vendors.getAllUser();
request.setAttribute("allUser", allUser); // Will be available as ${allUser} in JSP
System.out.println(allUser);
request.getRequestDispatcher("userProfile.jsp").forward(request, response);
}
catch (SQLException ex) {
throw new ServletException("Cannot obtain allUser from Database", ex);
}
}
else {
response.sendRedirect("login.jsp");
}
}
}
还有我想在其中显示 ArrayList 的 userProfile.jsp 页面,如下所示:
<c:forEach var="user" items="${allUser}">
<div class="col-md-5">
<img src="Resources/images/logo/logo1.jpg" alt="Logo1">
<h2>${user.name} ${user.last_name}</h2>
<p>${user.zip}, ${user.phone_no}, ${user.start_time}, ${user.end_time}</p>
<p>${user.quantity}, ${user.type}, ${user.order}, ${user.logo}</p>
</div>
</c:forEach>
问题是整个数组列表都在单个数组中,这就是为什么在 jsp 页面中显示数组的问题。我想分别显示每个用户的个人记录(每个用户有 10 个要显示的东西)。谁能告诉我我在哪个地方做错了。
谢谢!
【问题讨论】:
-
你能发布你的代码吗?你到目前为止所做的工作。