2013-11-04 17 views
7

Ich versuche ArrayList zu übergeben, die Objekt von Servlet zu JSP enthält. AberÜbergabe von ArrayList von Servlet zu JSP

Servlet-Datei:

request.setAttribute("servletName", categoryList); //categorylist is an arraylist  contains object of class category 
getServletConfig().getServletContext().getRequestDispatcher("/GetCategory.jsp").forward(request,response); 

JSP-Datei:

//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()); 
} 
%> 
+1

was ist die exeption gesetzt? –

+1

Warum verwenden Sie JSP-EL + JSTL nicht, um mit den Objekten umzugehen? Zweitens, wie kommen Sie vom Servlet zur JSP? eine Umleitung oder eine Weiterleitung verwenden? –

+0

@DebojitSaikia das Ergebnis zeigt nichts – Pravin

Antwort

13

Im Servlet-Code, mit dem Befehl request.setAttribute("servletName", categoryList), können Sie Ihre Liste im Request-Objekt, speichern und den Namen „servletname“ für beziehe sie verwenden.
Übrigens ist die Verwendung des Namens "servletName" für eine Liste ziemlich verwirrend, vielleicht ist es besser "Liste" oder ähnliches: request.setAttribute("list", categoryList)
Wie auch immer, nehmen Sie an, dass Sie Ihren Code nicht ändern und die Liste speichern Verwenden Sie den Namen "ServletName". Wenn Sie bei Ihrer JSP ankommen, müssen Sie die Liste aus der Anfrage abrufen. Dazu benötigen Sie nur die Methode 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()); 
} 
%> 
4

request.getAttribute("servletName") Methode Object zurückkehren, dass Sie werfen müssen, um zu ArrayList

ArrayList<Category> list =new ArrayList<Category>(); 
//storing passed value from jsp 
list = (ArrayList<Category>)request.getAttribute("servletName"); 
+1

haben Sie vergessen 'neue' vor dem Konstruktor' neue ArrayList () ':) –

+0

@ user2511414 ja danke .... aktualisiert. – Prabhakaran

+0

danke .. aber immer noch wird nichts angezeigt – Pravin

0

die möglichen Fehler wäre. ..
1.Setzen Sie die Array-Liste vom Servlet in der Session aus, nicht in der Anfrage.
2. Das von Ihnen festgelegte Array ist null.
3.Sie leiten die Seite um, anstatt sie weiterzuleiten.

auch sollten Sie die list und die category in Jsp nicht initialisieren. Versuche dies.

for(Category cx: ((ArrayList<Category>)request.getAttribute("servletName"))) { 

out.println(cx.getId()); 

out.println(cx.getName()); 

out.println(cx.getMainCategoryId()); 
} 
-2

hier Liste Attributname in Anfrage request.setAttribute("List",list); und ArrayList list=new ArrayList();

<% 

ArrayList<Category> a=(ArrayList<Category>)request.getAttribute("List"); 

out.print(a); 

for(int i=0;i<a.size();i++) 

{ 
    out.println(a.get(i)); 

} 


%> 
Verwandte Themen