1

我正在尝试QueryClass从我制作的 servlet 中检索类型的数组列表对象并导入类,QueryClass这样我就可以在我的 jsp 中使用名为validate.jsp“但是当我在 jsp 文件中获取属性时该对象似乎不存在,尽管在我的 servlet 中使用适当的数据对其进行了初始化,并且我使用正确的名称对其进行了设置。

在我的 servlet 中,我有这个片段

QueryClass query = new QueryClass("","","","");

String searchName = request.getParameter("searchName");

ArrayList<QueryClass> data = query.getSearchedNames(searchName);

request.setAttribute("data",data);  

RequestDispatcher rd = request.getRequestDispatcher("validate.jsp");

rd.forward(request, response);

在我的jsp中,我有以下内容

<%@page import="src.main.java.QueryClass"%>

<%
if(request.getAttribute("data")!=null) 
{
    ArrayList<QueryClass> value = (ArrayList<QueryClass>)request.getAttribute("data");
}
%>
4

1 回答 1

1

您的要求基本上可以通过牢记 MVC 方法来满足,该方法基本上使 scriptlet 过时和弃用。

  1. 在 servlet 方法中将所需的数据设置为请求属性:

    List<QueryClass> data = createList(...);
    request.setAttribute("data",data);
    request.getRequestDispatcher("validate.jsp").forward(request, response);
    
  2. 通过 EL 访问请求的不同属性(会话、应用程序等):

    ${data}
    

因此,为了记住您想要遍历列表,如果您使用 JSTL,遍历在 JSP 中可能具有以下样式:

<ul>
    <c:forEach var="element" items="${data}">
        <li>${element.name}</li>
    </c:forEach>
</ul>

如果您的类定义了方法,上面的代码将从您的数据对象生成每个元素的名称列表getName()

于 2013-04-25T12:21:05.520 回答