2014-01-21 39 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}