如何在.JSP文件中显示列表?
经过一个小时的扎实研究,我仍然无法做到这一点。
这是我的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代码:
Verify Users
Please enter the Username of the user you want to verify
结果集中肯定有数据,就好像我在while循环中的system.out.println它显示了所有正确的值。
我收到此错误消息:
javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in <forEach>
任何帮助,将不胜感激!
javax.servlet.jsp.JspTagException:不知道如何迭代
中提供的“items”
当
未引用可以迭代的Object时 ,会发生此exception。 Object应该是Iterable
, Map
或数组 。
很明显,您的列表属性是指不属于上述任何类别的类型。 虽然类型实际上是List
,但不是java.util.List
。
检查您的import语句:
import java.awt.List; // Here is the fault
它应该是:
import java.util.List;
此外,您应该使用generics类型List
而不是原始类型。 更改:
List list = new List();
至:
List list = new List ();
此外,您似乎正在doPost()
方法中执行预处理任务。 别。 doPost()
用于后处理请求 。 您应该使用doget()
方法进行预处理 。
将doPost()
所有代码移动到doGet()
方法。
更改:
List list = new List();
至:
List list = new ArrayList ();
从
java.util.List;
尝试像这样实例化列表:
List list = new ArrayList ();
或者,如果没有帮助,可能会将列表作为数组提供,例如:
req.setAttribute("list", list.toArray());