我一直在阅读有关spring(3.0)的文档和教程,因此,我学习了如何返回以JSP名称和Map作为模型的ModelAndView。我还了解到,在JSP中,如果要访问该映射的一个键,请执行${attributename}等等。那就是JSP EL。现在我的问题是:


EL正在访问页面的哪个对象?是PageContext吗?我试图在PageContext.getAttribute中找到这些键,但它们不在那里。
无论对象是什么,模型中的内容都自动到达那里吗?


随意添加资源以阐明我的想法

最佳答案

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

当您的Spring控制器返回一个模型时(例如,在ModelAndView内部),该模型由Spring的AbstractView类分解并插入到请求上下文中(这是“魔术”部分),以便当您的JSP EL表达式引用时到模型中的项目,就可以使用它了。

07-24 09:49
查看更多