我有一个网络应用程序,我有不同的导航锚标签,如家庭,个人资料等。
我想要的是:
当我按下主页或个人资料等锚标签时。我只想确保当前用户在Tags / JSP页面中获取其信息。
我正在尝试的示例示例:
<a href="${pageContext.request.contextPath}/JSPAddress.jsp">Profile</a>
pageContext
是JSP中可用的隐式对象。 The EL documentation说
JSP页面的上下文。提供对各种对象的访问,包括: servletContext:... 会议:...... 要求:...... 回应:......
因此,此表达式将获取当前HttpServletRequest
对象并获取当前请求的context path并将/JSPAddress.jsp
附加到其中以创建链接(即使在更改时访问此资源的上下文路径也将起作用)。
此表达式的主要目的是使链接与应用程序上下文保持“相对”,并使它们与应用程序路径的更改隔离开来。
例如,如果在thisJSP.jsp
访问您的JSP(名为http://myhost.com/myWebApp/thisJSP.jsp
),则该路径将为myWebApp
。因此,生成的链接href将是/myWebApp/JSPAddress.jsp
。
如果有一天,您决定在具有corpWebApp
的context-path的另一台服务器上部署JSP,则为该链接生成的href将自动更改为/corpWebApp/JSPAddress.jsp
而无需您执行任何操作。
在JSP表达式语言中使用request.getContextPath()
而不是${pageContext.request.contextPath}
。
<%
String contextPath = request.getContextPath();
%>
out.println(contextPath);
输出:willPrintMyProjectcontextPath
在jsp页面上包含<%@ page isELIgnored="false"%>
。