Я хочу отправить 2 объекта (например, объект User.java и объект Travel.java) из моего сервлета на страницу jsp.Передача нескольких объектов из одного сервлета в jsp
Ниже мой сервлет код:
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);
Ниже моя страница JSP блок кода:
<% 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 />
Для приведенного выше сегмента кода, он бросает исключения нулевого указателя, когда управление переходит от сервлета на страницу jsp. Однако, когда я удаляю один объект из сервлета и передаю только один объект (в этом случае: travel). Он работает нормально. Атрибут сеанса не может быть очень полезен, поскольку я сохраняю одну переменную независимо от этих двух объектов.
Мне нужно передать оба объекта из того же сервлета на страницу jsp. Я делаю неправильно? Есть ли больше способов справиться с такой ситуацией?
Заранее спасибо
Ваш доступ выглядит отлично. Если 'travel' не бросает NPE, я думаю, проблема в' user'. Как еще догадывается, 'user = fetchUserService.fetchUser (driverId);' в вашем первом блоке кода, вероятно, возвращает 'null'. – markspace
Я попытался отправить один объект за раз в jsp один за другим. Я не видел, чтобы вызов метода возвращал значение null. Я уверен, что проблема может заключаться в том, чтобы одновременно интерпретировать два объекта на странице jsp. :( – Sid
Как сказал @markspace, не должно быть проблемой передавать два разных объекта так, как вы это делали. Вероятно, это поможет, если вы можете указать, в какую строку вызывается NPE (вставляя трассировку стека исключений в вопрос даже лучше). – DanielBarbarian