2012-05-30 3 views
0

Я использую объем сеанса для хранения боба, и я хочу, чтобы спроецировать значение боба на страницу JSP, когда это необходимо, как таким образомИзменения объема от сессии просить

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

     response.sendRedirect("test.jsp"); 

И в Jsp I Я использую следующий код, чтобы получить значение на JSP

<% bean1 bean = (bean1) session.getAttribute("bean"); 

    %> 
<%= bean.getValue() %> 

Вместо того, чтобы использовать область сеанса я хочу использовать объем запроса, поэтому я могу установить мой атрибут в моем сервлете таким образом

request.setAttribute("bean", bean); 

Так как я могу назвать это на моем JSP я могу сказать

<% bean1 bean = (bean1) request.getAttribute("bean"); 

Но это показывает error.Or вместо того, чтобы использовать скриптлет как я могу показать свой вывод с помощью JSTL.

ответ

3

Вы не понимаете, что такое перенаправление. Переадресация - это ответ, который вы отправляете в браузер, чтобы браузер отправил другой новый запрос в адрес, на который вы перенаправили. Поэтому, когда вы звоните sendRedirect("test.jsp"), браузер отправит новый запрос на test.jsp. И, очевидно, все атрибуты, которые вы сохранили в текущем запросе, больше не будут доступны.

Невозможно, без контекста, сказать, нужно ли перенаправить что-то, что вы должны сделать в этом случае, или если вы должны переслать JSP. Переадресация сильно отличается от перенаправления, поскольку она передает только текущий запрос и ответ на другой компонент. В этом случае будет уникальный запрос, и JSP сможет найти атрибут, установленный сервлетом в запросе.

Единственное, что я могу сказать, это то, что в правильно спроектированном MVC-приложении JSP используется как представление, и никогда не должно быть прямого запроса на представление. Каждый запрос должен проходить через контроллер.

Смежные вопросы