2
我是Spring的新手,所以請原諒我,如果我的問題似乎愚蠢。Spring註釋@SessionAttributes是如何工作的
我無法獲得@SessionAttributes(以及@ModelAttribute)在我的Spring控制器中工作。我究竟做錯了什麼?下面是代碼...
@Controller
@SessionAttributes("myAttribute")
public class MyController {
@ModelAttribute("myAttribute")
public String createMySessionAttribute() {
System.out.println("Inside of createMySessionAttribute");
return new String("mySessionAttribute");
}
//......
@RequestMapping("/doSomething.do")
public ModelAndView doSomething(HttpSession session, HttpServletRequest request) {
String sessionAttribute = (String)session.getAttribute("myAttribute");
String requestAttribute = (String)request.getAttribute("myAttribute");
String requestSessionAttribute = (String)request.getSession().getAttribute("myAttribute");
System.out.println(" sessionAttribute = " + sessionAttribute
+ "; requestAttribute = " + requestAttribute
+ "; requestSessionAttribute = " + requestSessionAttribute
);
ModelAndView modelAndView = new ModelAndView("nextPage");
return modelAndView;
}
}
,這裏是輸出...
Inside of createMySessionAttribute
sessionAttribute = null; requestAttribute = null; requestSessionAttribute = null
我的預期......
Inside of createMySessionAttribute
sessionAttribute = mySessionAttribute; requestAttribute = mySessionAttribute; requestSessionAttribute = mySessionAttribute
請注意,我試圖檢索從屬性請求,會話和來自請求的請求(可能是多餘的)
謝謝
你在你的代碼,比如'ModelAndView的任何地方設置myAttribute'的'值。 addObject(「myAttribute」,「hello」);'? – Arpit
不,我不是,但我認爲ModelAttribute方法createMySessionAttribute是這樣做的 – martind
不,它不是。看看它解釋了一個很好的例子:http://fruzenshtein.com/spring-mvc-session/ – Arpit