2

我想从 Servlet 接收 ArrayList 到 JSP 页面。

这是我在 Servlet 中所做的

将 arraylist 存储在 schoolarraylist 中

request.setAttribute("Arraylist", schoolarraylist);

在 JSP(CreateStudent) 我试图访问 arraylist

<%ArrayList<SchoolBean> get= ( ArrayList<SchoolBean> )         

<%request.getAttribute("schoolarraylist"); %>

我想要做的是将数据库中的学校列表加载到一个下拉框中,以便在此 JSP 中创建学生时显示。

这是我在标签之间写的代码

<%for (SchoolBean c : get) {%>

<option value="<%=c.getSchoolname()%>"> <%=c.getSchoolname()%>
</option>
<%} %>
4

1 回答 1

4

setAttribute(java.lang.String name, java.lang.Object o)name存储请求中调用的对象。因此,您正在存储一个名为“Arraylist”的对象。

getAttribute(java.lang.String name)name检索从请求中调用的对象。所以你试图检索一个名为“schoolarraylist”的对象。

因此,请更改您的代码以设置与您用于检索它的名称相同的属性,例如:

request.setAttribute("schoolarraylist", schoolarraylist);

调用属性无关紧要,但在设置和获取属性时使用的名称保持一致。

顺便说一句,您应该考虑使用标记库,例如JSLT。例如,如果您已将列表作为名为“schoolarraylist”的属性存储在请求中,则可以执行以下操作:

<c:forEach var="school" items="${schoolarraylist}">
    <option value="<c:out value='${school.schoolname}'/>"> <c:out value='${school.schoolname}'/>
    </option>
</c:forEach>
于 2012-11-22T21:24:38.870 回答