2014-01-21 37 views
1

什么是可以在Spring MVC 3中的每个请求和响应中追加用户对象的方法。 因此,如果在Jsp上执行request.getAttribute(“user”),那么我应该能够获得用户对象。将用户对象添加到每个请求和响应

感谢所有。

+0

在会话存储用户对象。或@SessionAttribute(“用户”) –

回答

2

User对象保存在session属性

你可以把你User中的对象会话属性:

@Controller 
public class MyMvcController 
{ 
    @RequestMapping(value = "/hello", method = RequestMethod.GET) 
    public String hello(HttpServletRequest request) 
    { 

     User user = ... // initialise your User object here 
     request.getSession().setAttribute("user", user); 

     return "hello"; 
    } 
} 

如果你把User对象保存在session属性,它会被存储HTTP请求的服务器上,所以你需要在你的应用程序只有一次的地方对其进行初始化。在MVC模型${user.id}${user.name} ...

User对象

另外,如果你不想:

在JSP中,你可以用session.getAttribute("user")访问User对象,或EL将对象存储在会话属性中,可以在每个请求中创建一个新的User对象,并将其放入您的MVC模型中,如this answer中所述:

@ControllerAdvice 
public class GlobalControllerAdvice { 

    @ModelAttribute 
    public void myMethod(Model model) { 

    User user = // initialise your User object here 
    model.addAttribute("user", user); 

    } 
} 

查看原始答案的详细信息。

在JSP中,你可以用request.getAttribute("user")访问User对象,或者与EL:${user.id}${user.name} ...

0

您希望每个请求和响应中都有用户对象。

@Controller 
    @SessionAttribute("user") 
    public class UserController{ 

    } 

JSP代码:

<form:form modelAttribute="user">...</form:form> 

您可以使用用户对象,只要你想:

${user.name} //equivalent to request.getAttribute("user").getName(); 
${user.age}