2016-04-08 9 views
-1

Ich möchte 2 Objekte (z. B. User.java-Objekt und Travel.java-Objekt) von meinem Servlet an meine JSP-Seite senden.Mehrere Objekte von demselben Servlet an Jsp übergeben

Es folgt mein Servlet-Code:

Travel bookTravel=new Travel(); 
    User user=new User(); 

    SearchService searchService=new SearchService(); 
    bookTravel=searchService.fetchBookingDetail(travelid); 
    int driverId=bookTravel.getUserid(); 
    iService fetchUserService=new LoginService(); 
    user=fetchUserService.fetchUser(driverId); 


    request.setAttribute("user", user); 
    request.setAttribute("bookTravel", bookTravel); 
    RequestDispatcher rd=request.getRequestDispatcher("/bookingpage.jsp"); 
    rd.forward(request, response); 

Es folgt mein jsp Seite Codeblock:

<% Travel travel=new Travel(); 
User user=new User(); 
travel=(Travel)request.getAttribute("bookTravel"); 
user=(User)request.getAttribute("user"); 
%> 
Here are your choice of travel details: 
<%=user.getAddress() %> 
<br /> 

Für das obige Codesegment wird es Null-Zeiger Ausnahme werfen, wenn die Steuerung bewegt sich von Servlets zur jsp Seite. Allerdings, wenn ich ein Objekt aus dem Servlet entfernen und nur ein einzelnes Objekt (in diesem Fall: Reise) übergeben. Es funktioniert gut. Das Sitzungsattribut kann nicht viel helfen, da ich eine einzelne Variable unabhängig von diesen beiden Objekten behalte.

Ich muss beide Objekte aus dem gleichen Servlet auf die JSP-Seite übergeben. Mache ich falsch? Gibt es mehr Methoden, um mit dieser Art von Situation umzugehen?

Vielen Dank im Voraus

+0

Ihr Zugang sieht gut aus. Wenn 'travel' keine NPE wirft, würde ich vermuten, dass das Problem in' user' liegt. Als weitere Schätzung gibt 'user = fetchUserService.fetchUser (driverId); 'in Ihrem ersten Codeblock wahrscheinlich' null 'zurück. – markspace

+0

Ich habe versucht, indem ich ein Objekt nach dem anderen an den JSP gesendet habe. Ich habe nicht gesehen, dass ein Methodenaufruf einen Nullwert zurückgibt. Ich bin mir ziemlich sicher, dass das Problem darin liegt, zwei Objekte auf der JSP-Seite zu einem Zeitpunkt zu interpretieren. :( – Sid

+0

Wie @markspace sagte, sollte es kein Problem sein, zwei verschiedene Objekte auf die gleiche Art und Weise zu übergeben. Es würde wahrscheinlich helfen, wenn Sie angeben könnten, in welcher Zeile die NPE geworfen wird besser). – DanielBarbarian

Antwort

0

Im Fragmente von Code, den Sie den Parameter geschrieben namens ‚travelid‘ ist nicht definiert.

bookTravel=searchService.fetchBookingDetail(travelid); 

Das scheint der Grund zu sein, warum das Objekt bookTravel Probleme verursacht. Überprüfen Sie Ihren Code, wenn Sie die Variable deklariert und initialisiert haben.

Verwandte Themen