嗯,这个错误肯定是由我做出某种错误造成的。以下是我的代码。
servlet:
package Servlets;
// import statements
public class AdminResource extends HttpServlet {
List<userList> users = new ArrayList<>();
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Database db = (Database) getServletContext().getAttribute("db");
String sql = "select * from TAHMID_NIPS.GROUPS";
ResultSet rs;
try {
rs = db.runSql(sql);
// int i = 0;
while (rs.next()) {
userList user = new userList(rs.getString("USERNAME"), rs.getString("GROUPID"));
users.add(user);
/* used a printWriter here to access the bean in the servlet
out.println(users.get(i).getUserName());
out.println(users.get(i).getGroupID());
i++;
*/
}
request.setAttribute("users", users);
request.getRequestDispatcher("userList.jsp").forward(request, response);
} catch(SQLException ex){}
}
// doGet(), doPost(), getServletInfo() methods..
}
JavaBean类::
public class userList {
private String GroupID;
private String UserName;
public userList(String GroupID, String UserName){
this.GroupID = GroupID;
this.UserName = UserName;
}
public String getGroupID() {
return GroupID;
}
public void setGroupID(String GroupID) {
this.GroupID = GroupID;
}
public String getUserName() {
return UserName;
}
public void setUserName(String UserName) {
this.UserName = UserName;
}
}
调度的JSP视图:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>These are the users in the database!</h1><br>
<c:forEach var="iterator" items="${users}">
<c:out value="${iterator.UserName}"/> <br>
</c:forEach>
</body>
</html>
数据库URL,密码和其他必需信息在web.xml文件中声明,并实现了contextListener类。当数据显示在servlet中时,应用程序正常工作。但是,由于我们是MVC粉丝,当我尝试使用EL访问bean时问题就出现了。无法访问这些字段。
关于数据库:
这是一个名为Groups的表,其中包含两个字段:UserName,GroupID。但是它们都没有在JSP视图中显示。
JSP视图中的EL可能发生了问题。专家,请帮忙。
答案 0 :(得分:0)
更改名称并使用变量userName
,groupID
和类UserList
等java命名标准,因为两个名称的getter和setter方法相同。
也改变这条线
userList user = new userList(rs.getString("USERNAME"), rs.getString("GROUPID"));
到此
userList user = new userList( rs.getString("GROUPID"),rs.getString("USERNAME"));
由于你的构造函数。