After an hour of solid research I still can't do this.
This is my Servlet code:
package com.fdm.ProjectWeb.RedirectServlets;
import java.awt.List;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.spi.DirStateFactory.Result;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.jstl.sql.ResultSupport;
import com.fdm.ProjectWeb.Controller.ValidateRegisterInputController;
import com.fdm.ProjectWeb.Model.OraclePullListOfUsers;
import com.fdm.ProjectWeb.Model.OracleUserManagement;
public class VerifyRedirect extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
OraclePullListOfUsers pull = new OraclePullListOfUsers();
ResultSet rs = pull.unverifiedUsers();
List list = new List();
try {
while (rs.next()){
list.add(rs.getString(1));
}
} catch (SQLException e) {
e.printStackTrace();
}
req.setAttribute("list", list);
RequestDispatcher rd = req.getRequestDispatcher("./WEB-INF/VerifyUser.jsp");
rd.forward(req, resp);
}
}
And this is my .JSP code:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>Verify Users</title>
</head>
<body>
<table>
<c:forEach items="${list}" var="item">
<tr>
<td><c:out value="${item}" /></td>
</tr>
</c:forEach>
</table>
<h2>Please enter the Username of the user you want to verify</h2>
<form action="loginform" method="POST">
<label>User To Verify: <input type="text" name="userToVerify" id="userToVerify" /></label><br />
<input type="submit" value="Submit" name="submit" />
</form>
</body>
The Result Set definitely has data in it as if I system.out.println in the while loop it shows all the right values.
And I get this error message:
javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in <forEach>
Any help would be appreciated!
Right-click the index. jsp file; click Run As > Run on Server. The storefront page is displayed in the Web browser. Note: If prompted to select a server, select Choose an existing server and click Finish.
Make sure that the path of the file is tomacat9. 0 → webapps → root → your file with jsp extension. 2. After saving, your file will look like this in the notepad.
The include directive is used to include the contents of any resource it may be jsp file, html file or text file.
javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in <forEach>
This exception occur when your <c:forEach items>
does not refer to an Object, that can be iterated upon. The Object should either be Iterable
, a Map
, or an array.
So clearly, your list attribute refers to the type which does not come under any of the above category. Though the type is actually a List
, but not java.util.List
.
Check your import statement:
import java.awt.List; // Here is the fault
It should be:
import java.util.List;
Also, you should use generic type List
instead of raw type. Change:
List list = new List();
to:
List<String> list = new List<String>();
Also, it seems like you are doing the pre-processing task in doPost()
method. Don't. doPost()
is used for post-processing a request. You should use doget()
method for pre-processing.
Move all your code in doPost()
to doGet()
method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With