传递给JSP的Spring模型去哪里了?

got*_*ch4 7 jsp spring-mvc

我一直在阅读关于spring(3.0)的文档和教程,所以我学会了如何ModelAndView使用JSP名称和Map作为模型返回a .我还了解到,在JSP中,如果要访问该映射的一个键,${attributename}依此类推.那是JSP EL.现在我的问题:

  • EL访问页面的哪个对象?那是PageContext吗?我试图找到那些钥匙,PageContext.getAttribute但他们不在那里.
  • 无论对象是什么,模型中的东西都是自动的吗?

随意添加资源以澄清我的想法

ska*_*man 7

当您执行类似操作时${attributename},JSP EL将检查各种源以查找它,包括页面和请求上下文(按此顺序).

当你的Spring控制器返回一个模型(例如在里面ModelAndView)时,这个模型被Spring的AbstractView类分解并插入到请求上下文中(这是"魔术"部分),这样当你的JSP EL表达式引用模型中的一个项目时,它可以使用.