模型属性存储在哪里?
我搜索了很多,找不到答案。
模型对象值存储在Spring
。
model.addAttributes("key","values")
值的位置(例如:session,request) 。这个的范围是什么?
如何使用${key}
这样的expression language
获取JSP中存储值的值?
EL
如何工作以检索model
的存储值?
它在请求中,除非使用@SessionAttributes
修改。 如果您正在进行重定向 – 请求属性丢失; 这是一个新的要求。
对于你的第二个和第三个问题,这个链接解决了传递给JSP的Spring模型在哪里?
DispatcherServlet
是任何Spring MVC应用程序的入口点,它在每个请求上创建一个新的ModelAndViewContainer
对象。 这个类的javadoc说明
在调用控制器方法的过程中记录由
HandlerMethodArgumentResolvers
和HandlerMethodReturnValueHandlers
做出的模型和视图相关决策。
这两个接口处理解析@RequestMapping
注释的方法参数和返回值。
因此,在请求的生命周期中,模型属性存储在此ModelAndViewContainer
对象的ModelMap
字段中。 实际的当前实现是BindingAwareModelMap
。
在请求结束时,当需要呈现视图时,某些View
对象会将模型属性与HttpServletRequest
属性合并。
EL如何工作以检索模型中的存储值?
它没有。 EL解析JSP的页面范围, HttpServletRequest
, HttpSession
或ServletContext
的属性。