我一直在阅读关于spring(3.0)的文档和教程,所以我学会了如何使用JSP名称和Map作为模型返回ModelAndView
。我还了解到,在JSP中,如果要访问该映射的一个键,则执行${attributename}
,依此类推。那是JSP EL。现在我的问题:
PageContext
吗?我试图在PageContext.getAttribute
中找到这些密钥,但它们不存在。随意添加资源以澄清我的想法
答案 0 :(得分:6)
当您执行${attributename}
之类的操作时,JSP EL将检查各种来源以查找它,包括页面和请求上下文(按此顺序)。
当你的Spring控制器返回一个模型时(例如在ModelAndView
内),这个模型被Spring的AbstractView
类分解并插入到请求上下文中(这是“魔法”部分),所以当您的JSP EL表达式引用模型中的项目时,可以使用它。
答案 1 :(得分:0)
它们通常存储在请求中。因此request.getAttributeNames()
应该为您提供所有模型(但仅用于教育目的 - 否则使用EL访问模型)。也就是说,它也应该可以从pageContext
(在请求范围内)访问。
是的,它会自动添加。