从Servlet转发到JSP

时间:2011-02-11 20:21:51

标签: model-view-controller jsp el

我正在尝试实现MVC2模型。 我有一个从会话bean中获取数据的Servlet,并将实体从servlet转发到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中的

:我从请求中获取用户,如果我使用scriptlets标签,我可以打印其名称,但是当我使用EL时,没有打印出来:

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

如何将session-bean包含/转发到JSP中以便能够使用EL(并避免使用scriptlet)?
这是实现模型视图控制器的首选方法吗?

1 个答案:

答案 0 :(得分:2)

EL使用请求属性。您没有currUser作为请求属性。如果您尝试${user.name},它就能正常运作。

我不确定“session bean”是什么意思。 EJB是会话bean,但您没有在视图中显示任何内容。但无论如何 - 在视图中不应该访问EJB。

简而言之 - 您正在使用正确的方法 - 只使用具有您设置的属性的EL。