JSP 显示空白数据



我在这里发疯,试图弄清楚为什么我的JSP不显示表中的数据。似乎servlet连接到MySQL并填充数据,但是我无法将该数据推送到JSP.setAttribute((方法正在工作(对象在那里(。我无法提取特定信息并在浏览器中显示其格式化形式。如果有人可以指出我如何解决此问题...为什么 JSTL 表达式不能加载正确的信息。Eclipse 不返回任何错误,整个应用程序都会编译。它只是显示空白页面。您可以在下面找到代码。

提示:我正在测试是否可以推送 LIST 并且可以显示对象。它有效,因此对象对JSP是"可见的"。当我尝试加载特定信息(用户名,密码或电子邮件(时,它返回空白。感谢您的任何帮助/提示。

您可以在下面找到代码。

用户豆.java

package com.admin;
public class UserBean {
private String password;
private String firstname;
private String lastname;
private String email;
private String usertype;
private String datecreated;
private String username;
public UserBean(){};
public UserBean(String username2, String password2, String firstname2, String lastname2, String email2,
String usertype2, String datecreated2) {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUsertype() {
return usertype;
}
public void setUsertype(String usertype) {
this.usertype = usertype;
}
public String getDatecreated() {
return datecreated;
}
public void setDatecreated(String datecreated) {
this.datecreated = datecreated;
}
}

用户道.java

package com.admin;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.clientdb.ConnectionManager;
public class UserDAO {
public static List<UserBean> listOfUsers()
{
List<UserBean> userList=new ArrayList<>();
String query="SELECT * FROM users";
try
{
Connection conn = ConnectionManager.getConnection();
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery(query);
while(rs.next())
{
String username=rs.getString("username");
String password=rs.getString("password");
String firstname=rs.getString("firstname");
String lastname=rs.getString("lastname");
String email=rs.getString("email");
String usertype=rs.getString("usertype");
String datecreated=rs.getString("date_created");
UserBean user=new UserBean(username,password,firstname,lastname,email,usertype,datecreated);
userList.add(user);
}
stm.close();
rs.close();
conn.close();       
}
catch(Exception ex){System.out.println(ex);}
return userList;
}}

用户管理员.java

package com.admin;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UserAdmin extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<UserBean> userList = UserDAO.listOfUsers();
request.getSession().setAttribute("userList",userList);
request.getRequestDispatcher("userlist.jsp").forward(request,response);
}
}

用户列表.jsp

<table class="table table-hover"  style="margin-top:20px;">
<thead>
<tr>
<th>Username</th>
<th>Password</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>User Type</th>
<th>Date Created</th>
</tr>
</thead>
<tbody>
<c:forEach items="${userList}" var="user">
<tr> 
<td><c:out value="${user.username}"/></td>
<td><c:out value="${user.password}"/></td>
<td><c:out value="${user.firstname}"/></td>
<td><c:out value="${user.lastname}"/></td>
<td><c:out value="${user.email}"/></td>
<td><c:out value="${user.usertype}"/></td>
<td><c:out value="${user.datecreated}"/></td>
<td>
<a href="reset.html" role="button" class="btn btn-primary">RESET</a>
<!--  <button type="button" class="btn btn-danger" data-toggle="modal" data-target="#userDeleteModal">DELETE</button>-->
<a href="deleteUser.do?email=${user.email}" role="button" class="btn btn-danger">DELETE</a>       
</td>
</tr>
</c:forEach>
</tbody>
</table>

UserBean 的构造函数不会为字段赋值。

public UserBean(String username2, String password2, String firstname2, String lastname2, String email2,
String usertype2, String datecreated2) {
username = username2;
password = password2; 
// ... etc
}

你还记得导入c:core吗?

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

试试这个:

<c:forEach items="${sessionScope.userList}" var="user">
<tr> 
<td><c:out value="${user.username}"/></td>
<td><c:out value="${user.password}"/></td>
<td><c:out value="${user.firstname}"/></td>
<td><c:out value="${user.lastname}"/></td>
<td><c:out value="${user.email}"/></td>
<td><c:out value="${user.usertype}"/></td>
<td><c:out value="${user.datecreated}"/></td>
<td>
<a href="reset.html" role="button" class="btn btn-primary">RESET</a>
<!--  <button type="button" class="btn btn-danger" data-toggle="modal" data-target="#userDeleteModal">DELETE</button>-->
<a href="deleteUser.do?email=${user.email}" role="button" class="btn btn-danger">DELETE</a>       
</td>
</tr>
</c:forEach>

<c:forEach items="${sessionScope.userList}" var="user">

最新更新