模型属性存储在哪里?

时间:2014-01-08 15:31:56

标签: java spring jsp spring-mvc servlets

我搜索了很多但找不到答案。

模型对象值存储在Spring

存储{em}的model.addAttributes("key","values")值(例如:会话,请求)。这个的范围是什么?

如何使用像expression language这样的${key}来获取JSP中存储值的值?

EL如何检索model中的存储值?

2 个答案:

答案 0 :(得分:4)

DispatcherServlet是任何Spring MVC应用程序的入口点,它会在每个请求上创建一个新的ModelAndViewContainer对象。这个类的javadoc说明了

  

记录模型并查看相关决策   HandlerMethodArgumentResolversHandlerMethodReturnValueHandlers   在调用控制器方法的过程中。

这两个接口处理解析@RequestMapping带注释的方法参数和返回值。

因此,在请求的生命周期中,模型属性存储在此ModelAndViewContainer对象的ModelMap字段中。实际的当前实现是BindingAwareModelMap

在请求结束时,当需要呈现视图时,某些View个对象会将模型属性与HttpServletRequest属性合并。

  

EL如何检索模型中的存储值?

没有。 EL解析JSP页面范围HttpServletRequestHttpSessionServletContext中的属性。

答案 1 :(得分:3)

它在请求中,除非使用@SessionAttributes进行修改。如果您正在进行重定向 - 请求属性丢失;这是一个新的要求 对于您的第二个和第三个问题,请通过此链接Where does the Spring Model that is passed to a JSP goes to?

解决