我正在尝试实现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)?
这是实现模型视图控制器的首选方法吗?
答案 0 :(得分:2)
EL使用请求属性。您没有currUser
作为请求属性。如果您尝试${user.name}
,它就能正常运作。
我不确定“session bean”是什么意思。 EJB是会话bean,但您没有在视图中显示任何内容。但无论如何 - 在视图中不应该访问EJB。
简而言之 - 您正在使用正确的方法 - 只使用具有您设置的属性的EL。