我已經在DAO中創建了Arraylist,並在servlet中使用了此列表。數組列表的結果顯示在jsp頁面中。當使用servlet時,ArrayList不會顯示在jsp頁面中,而DAO
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;
}
}
此ArrayList通在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");
}
}
}
而且userProfile.jsp頁面中,我想展示ArrayList如下:
<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件事情要顯示)。誰能告訴我我在哪個地方做錯了事。
謝謝!
你可以發佈你的代碼嗎?迄今爲止所做的工作。 – Dhruv