2017-03-28 2 views
0

Ich habe Probleme mit der Übergabe von Array-Objekt von Servlet zu JSP. Wenn ich versuche, es an JSP zu übergeben, bekomme ich NullPointerException, aber wenn ich dieses Objekt in Servlet drucke, habe ich alle Daten.Übergabe von Arraylist Formular Servlet zu JSP

Servlets:

ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM APP.CUSTOMER"); 
     CustomerBean customer = null; 
     List<CustomerBean> list = new ArrayList<CustomerBean>(); 
     while (rs.next()) { 
      customer = new CustomerBean(); 
      customer.setCustomer_id(rs.getInt("CUSTOMER_ID")); 
      customer.setName(rs.getString("NAME")); 
      customer.setPhone(rs.getString("PHONE")); 
      customer.setEmail(rs.getString("EMAIL")); 
      customer.setCity(rs.getString("CITY")); 
      list.add(customer); 
     } 
     request.getSession().setAttribute("list", list); 
     RequestDispatcher disp; 
     disp = getServletContext().getRequestDispatcher("index.jsp"); 

     disp.forward(request, response); 

JSP:

<% 
    // retrieve your list from the request, with casting 
    ArrayList<CustomerBean> list = (ArrayList<CustomerBean>) request.getAttribute("list"); 

    // print the information about every category of the list 
    for(CustomerBean list1 : list) { 
     out.println(list1.getCustomer_id()); 
     out.println(list1.getName()); 
     out.println(list1.getPhone()); 
     out.println(list1.getEmail()); 
     out.println(list1.getCity()); 
    } 
%> 

UPDATE

Jetzt, als ich eine Liste der Daten haben, wie nur 1 Zeile Klick auf href angezeigt werden in neuen jsp . Ich habe so etwas, aber wenn ich id ist nicht beiläufig klicken:

for(CustomerBean list1 : list) { 
     out.println("<td>"+list1.getCustomer_id()+"</td>"); 
     out.println("<td>"+list1.getName()+"</td>"); 
     out.println("<td>"+list1.getPhone()+"</td>"); 
     out.println("<td>"+list1.getEmail()+"</td>"); 
     out.println("<td>"+list1.getCity()+"</td>"); 
     out.println("<td><a href='details.jsp?customer_id='+list1.getCustomer_id()>details</a></td>"); 
     out.println("</tr>"); 
    } 
+0

Codieren Sie keine Geschäftslogik in JSP-Seiten. – soorapadman

+0

@soorapadman Welche Geschäftslogik hat OP in JSP getan? –

+0

Statt request.getSession(). SetAttribute ("list", list); Verwenden Sie request.setAttribute ("list", list); in Servlet-Datei –

Antwort

0

Sie fügen Ihre list zu Ihrer Sitzung

request.getSession().setAttribute("list", list); 

aber versuchen, es aus Ihrer Anfrage abrufen

ArrayList<CustomerBean> list = (ArrayList<CustomerBean>) request.getAttribute("list"); 

versuchen Sie, es zu Ihnen hinzuzufügen request

request.setAttribute("list", list); 
+0

Das funktioniert nicht, noch NullPointerException :( – Egzen

+0

siehe http://StackOverflow.com/a/3609046/2310289 –

+0

Still NullPointerException :( – Egzen