使用EL访问requestScope属性的语法

问题描述 投票:-2回答:1

此帖子是followup to an earlier post of mine

在我的servlet类中,设置请求属性,如下所示:request.setAttribute("emperor", "Naruhito");

在我的JSP中,EL隐式对象requestScope评估为以下值:{javax.servlet.forward.context_path=/newbie_jsp, javax.servlet.forward.servlet_path=/HomeServlet, javax.servlet.forward.request_uri=/newbie_jsp/HomeServlet, emperor=Naruhito}

在我的JSP中提取emperor属性的语法是${requestScope.emperor}

但是,在我的JSP中提取javax.servlet.forward.request_uri属性的语法是${requestScope['javax.servlet.forward.request_uri']}


Q)为什么两者之间存在明显的差异?

jsp el
1个回答
0
投票

请求参数javax.servlet.forward.request_uri,在Servlet / JSP规范中定义并自动填充,在其名称中包含“。”:在这种情况下,您需要使用${requestScope['Param']}(又名“括号”)语法。

您的自定义emperor参数不包含点(。),因此您可以使用缩写符号:${requestScope.param}

希望有帮助,问候,塞德里克

© www.soinside.com 2019 - 2024. All rights reserved.