此帖子是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)为什么两者之间存在明显的差异?
请求参数javax.servlet.forward.request_uri,在Servlet / JSP规范中定义并自动填充,在其名称中包含“。”:在这种情况下,您需要使用${requestScope['Param']}
(又名“括号”)语法。
您的自定义emperor参数不包含点(。),因此您可以使用缩写符号:${requestScope.param}
希望有帮助,问候,塞德里克