我使用spring mvc,我想了解一些东西 在这段代码中:
@RequestMapping(value="/enregistrerLostCard")
public @ResponseBody
void enregistrerLostCard(@ModelAttribute(value="auth") Auth auth2, HttpServletRequest request) {
Auth auth1 = (Auth) request.getAttribute("auth");
System.out.println(auth2.getLogin()); //print the right value
System.out.println(auth1.getLogin()); //i got nullpointer exception
}
@ModelAttribute(value="auth")
和request.getAttribute("auth")
不一样?
答案 0 :(得分:3)
HttpServletRequest
是Servlet
容器管理对象。其属性存储包含在Servlet
容器处理请求的任何部分中有用的属性。
Model
,ModelMap
,ModelAndView
等由Spring MVC(DispatcherServlet
堆栈)管理。其中的属性对应用程序的Spring端很有用。
在某些情况下,如果需要,Model
属性将插入HttpServletRequest
属性中。当您的处理程序方法返回String
值作为视图名称时,通常会发生这种情况。模型属性将作为HttpServletRequest
属性推送,以便可以在视图中使用它们,例如,在jsps中。
相关: