Пересылка из сервлета в JSP - PullRequest
1 голос
/ 11 февраля 2011

Я пытаюсь реализовать модель MVC2. У меня есть сервлет, который получает данные из сессионного компонента и перенаправляет сущность из сервлета в jsp:

public class MyServlet extends HttpServlet{

@EJB UserFacade userFacade;  

//Fetch the user from the session bean  
Users currUser=userFacade.find(userName);  
...
request.setAttribute("user", currUser);  
getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);  
}  

в index.jsp: я получаю пользователя по запросу и могу напечатать его имя, если использую теги скриптлетов, но когда я использую EL, ничего не печатается:

<@page import="Entities.Users">  
 <"Users currUser = (Users)request.getAttribute("user");">  
 <= currUser.getName() > -OK!  
 ${currUser.name}-Nothing is printed!  

Как мне включить / переслать сессионный компонент в JSP, чтобы иметь возможность использовать EL (и избегать использования скриптлетов)?
Является ли это предпочтительным способом реализации контроллера Model View?

1 Ответ

2 голосов
/ 11 февраля 2011

EL использует атрибуты запроса.У вас нет currUser в качестве атрибутов запроса.Если вы попробуете ${user.name}, это сработает.

Я не уверен, что вы подразумеваете под "сессионным компонентом".EJB-компоненты - это сессионные компоненты, но вы ничего не показали об этом в представлении.Но в любом случае - EJB не должны быть доступны в представлении.

Короче говоря - вы используете правильный подход - просто используйте EL с заданными вами атрибутами.

...