2013-07-15 4 views
0

Весной MVC, я могу провести сеанс с помощью моего метода. Ничего страшного.Ввод специального параметра для запроса метода сопоставления в Spring MVC

@RequestMapping(value = "/{cid}/read") 
public @ResponseBody 
boolean markAsRead(@PathVariable("cid") Comment comment, HttpSession session) { 
    User user = ((User) session.getAttribute("user")); 
    ... } 

Могу ли я передать определение пользователя определению метода? Я имею в виду, вместо проводов сессии

@RequestMapping(value = "/{cid}/read") 
public @ResponseBody 
boolean markAsRead(@PathVariable("cid") Comment comment, User user) { 
    //No need to inject HttpSession and 
    //no need to call user = ((User) session.getAttribute("user")); 
    ... } 
+0

[StackOverflow была решена эта проблема ] (https://stackoverflow.com/questions/15032063/spring-mvc-bind-request-attribute-to-controller-method-parameter/15035677#15035677) – chenyueling

ответ

0

Вы должны быть в состоянии восстановить его с помощью @ModelAttribute тег, и аннотирования пользователя как атрибут сеанса, таким образом:

@SessionAttributes("user") 
public class MyController { 
    @RequestMapping(value = "/{cid}/read") 
    public @ResponseBody 
    boolean markAsRead(@PathVariable("cid") Comment comment, @ModelAttribute("user") User user) { 
     //No need to inject HttpSession and 
     //no need to call user = ((User) session.getAttribute("user")); 
    ... } 
} 
Смежные вопросы