Pra*_*vin 9 java jsp servlets arraylist
我试图将包含从servlet的对象的ArrayList传递给JSP.但
Servlet文件:
request.setAttribute("servletName", categoryList); //categorylist is an arraylist contains object of class category
getServletConfig().getServletContext().getRequestDispatcher("/GetCategory.jsp").forward(request,response);
Run Code Online (Sandbox Code Playgroud)
JSP文件:
//category class
<% Category category = new Category();
//creating arraylist object of type category class
ArrayList<Category> list = ArrayList<Category>();
//storing passed value from jsp
list = request.getAttribute("servletName");
for(int i = 0; i < list.size(); i++) {
category = list.get(i);
out.println( category.getId());
out.println(category.getName());
out.println(category.getMainCategoryId() );
}
%>
Run Code Online (Sandbox Code Playgroud)
小智 17
在servlet代码中,使用该指令request.setAttribute("servletName", categoryList)将列表保存在请求对象中,并使用名称"servletName"来引用它.
顺便说一下,使用名称"servletName"作为列表是相当混乱的,也许最好称之为"列表"或类似的东西: request.setAttribute("list", categoryList)
无论如何,假设你不改变你的serlvet代码,并使用名称"servletName"存储列表".当您到达JSP时,需要从请求中检索列表,为此您只需要该request.getAttribute(...)方法.
<%
// retrieve your list from the request, with casting
ArrayList<Category> list = (ArrayList<Category>) request.getAttribute("servletName");
// print the information about every category of the list
for(Category category : list) {
out.println(category.getId());
out.println(category.getName());
out.println(category.getMainCategoryId());
}
%>
Run Code Online (Sandbox Code Playgroud)
request.getAttribute("servletName")方法将返回Object您需要转换为ArrayList
ArrayList<Category> list =new ArrayList<Category>();
//storing passed value from jsp
list = (ArrayList<Category>)request.getAttribute("servletName");
Run Code Online (Sandbox Code Playgroud)