0

关于我较旧的未回答问题,我还有一个与它部分相关的错误/问题。

jsp中的通用链接,变量和路径

在此处输入图像描述

当我像这样包含我的 header.jsp 时:

<%@include file="/WEB-INF/view/jsp/common/header.jsp" %>

它工作正常。

但如果我这样做则不会:

<%@include file="${pageContext.request.contextPath}/view/jsp/common/header.jsp" %>

错误:

HTTP Status 500 - /WEB-INF/view/jsp/common/login/login.jsp (line: 8, column: 1) File "${pageContext.request.contextPath}/view/jsp/common/header.jsp" not found

上面的 ${} 是一种正确的方法,这就是我过去一直在做的事情,直到我开始使用 spring 和 spring 安全性。

但我不认为这是弹簧或弹簧安全的问题。

我真的无法理解为什么WEB-INF有权重以及如何使我的链接通用(参考我的旧问题)

4

1 回答 1

3

实际上,在这种情况下,这不是正确的方法。上下文路径不用于在应用程序内部创建路径,如本例所示。相反,它用于在视图层中生成 URL,例如链接、表单 URL 等。

在这种情况下,以下是正确的:

<%@include file="/WEB-INF/view/jsp/common/header.jsp" %>

上面的 include 行是指打包在您的 war 文件中的资源。在 servlet 容器中配置的上下文路径与打包在您的战争中的东西的位置有什么关系?

回顾一下,您只需要使用${pageContext.request.contextPath}前缀将放置在客户端输出中的 URL。

于 2013-08-04T03:09:09.867 回答