pageContext.request.contextPath不起作用

时间:2011-05-04 00:54:38

标签: java jsp tomcat contextpath

我正在使用Tomcat 6.0.32而我正在尝试将JSP文件包含到另一个文件中,但不知道文件无法找到(是的,该文件存在)。这是文件结构和代码:

<jsp:include page="${pageContext.request.contextPath}/templates/header.jsp">
</jsp:include>

WebContent
- folder/caller.jsp
- templates/header.jsp

但是,如果我在其外部使用$ {pageContext.request.contextPath}来检查它是否正确输出,那么它是否有效,是否有人知道为什么会发生这种情况?

2 个答案:

答案 0 :(得分:5)

我甚至不确定你是否可以在<jsp:include>中使用运行时变量,但另一个问题是the contextPath refers到服务器请求的URL的上下文,并不一定对应于您的文件系统布局。

为什么不使用<jsp:include page="templates/header.jsp">

答案 1 :(得分:1)

我完全赞同上面的答案,但是如果你必须以这种方式使用它,那么下面的代码shd工作

<c:set var="myContext" value="${pageContext.request.contextPath}"/>
<jsp:include page="${myContext}/templates/header.jsp"> </jsp:include>