经过一个小时的扎实研究,我仍然无法做到这一点。
这是我的Servlet代码:
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); } }
这是我的.JSP代码:
<%@ 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>
结果集中肯定有数据,就像while循环中的system.out.println一样,它显示所有正确的值。
我收到此错误消息:
javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in <forEach>
任何帮助,将不胜感激!
javax.servlet.jsp.JspTagException:不知道如何遍历中提供的“项目”
当您<c:forEach items>不引用 Object时 ,会发生此异常。的 对象 应或者是Iterable,一个Map,或一个 阵列 。 显然,您的 list 属性引用的类型不属于上述任何类别。虽然类型实际上是一个List,但不是java.util.List。
<c:forEach items>
Iterable
Map
List
java.util.List
检查您的进口声明:
import java.awt.List; // Here is the fault
它应该是:
import java.util.List;
另外,您应该使用通用类型List而不是原始类型。更改:
List list = new List();
至:
List<String> list = new List<String>();
另外,似乎您正在执行method中的 预处理 任务doPost()。别。[doPost()用于 后期处理 。您应该使用doget()method进行 预处理 。
doPost()
doget()
将所有代码doPost()移到doGet()方法中。
doGet()