我希望从Servlet接收ArrayList到JSP页面。
以下是我在Servlet中所做的事情
在schoolarraylist中存储了arraylist
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>
<%} %>
答案 0 :(得分: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>