这个表达式语言 ${pageContext.request.contextPath} 在 JSP EL 中究竟做了什么?
我有一个Web应用程序,其中我有不同的导航锚点标签,如主页,个人资料等。
我想要什么:
当我按下锚点标签,如主页或个人资料。我只想确保当前用户在该标记/ JSP页面中获取其信息。
我正在尝试的示例示例:
<a href="${pageContext.request.contextPath}/JSPAddress.jsp">Profile</a>
我有一个Web应用程序,其中我有不同的导航锚点标签,如主页,个人资料等。
我想要什么:
当我按下锚点标签,如主页或个人资料。我只想确保当前用户在该标记/ JSP页面中获取其信息。
我正在尝试的示例示例:
<a href="${pageContext.request.contextPath}/JSPAddress.jsp">Profile</a>
是 JSP 中可用的隐式对象。EL 文档显示pageContext
JSP 页的上下文。提供对各种对象的访问,包括:
servletContext: ...
会期:。。。
请求:。。。
响应:。。。
因此,此表达式将获取当前对象并获取当前请求的上下文路径,并追加到该对象以创建链接(即使更改时访问此资源的上下文路径,该链接也将起作用)。HttpServletRequest
/JSPAddress.jsp
此表达式的主要目的是使链接与应用程序上下文保持“相对”,并使它们免受对应用程序路径的更改的影响。
例如,如果在 处访问 JSP(名为 ),则上下文路径将为 。因此,生成的链路 href 将为 。thisJSP.jsp
http://myhost.com/myWebApp/thisJSP.jsp
myWebApp
/myWebApp/JSPAddress.jsp
如果有一天,您决定将 JSP 部署到上下文路径为 的服务器上,则为链接生成的 href 将自动更改为,而无需您进行任何工作。corpWebApp
/corpWebApp/JSPAddress.jsp
包含在 jsp 页面的顶部。<%@ page isELIgnored="false"%>