【发布时间】:2014-03-17 06:33:29
【问题描述】:
我正在我的基于 JSP 的 web 应用程序中做一些基本的模板。例如,我希望有一个标准的页眉和页脚(基本 HTML),我将其拉入到我的每个 JSP 中。
我的内容 JSP 位于 /WEB-INF/jsp/home.jsp,而我的模板 JSP 位于 /WEB-INF/jsp/template/,例如 /WEB-INF/jsp/template/Body-Footer.jsp。
所以现在,在home.jsp 中,我想提取我的模板文件。首先,我尝试jsp:include 操作:
<jsp:include page="template/Body-Footer.jsp"></jsp:include>
它会生成错误javax.servlet.ServletException: File &quot;/template/Body-Footer.jsp&quot; not found
我觉得奇怪,考虑到 Eclipse 说路径是有效的。
好的,那么我切换到包含指令:
<%@ include file="template/Body-Footer.jsp" %>
这很好用,拉入我的页脚 HTML。
但是为什么jsp:include 不起作用?经过一些实验,我发现放入绝对路径确实可以工作:
<jsp:include page="/WEB-INF/jsp/template/Body-Footer.jsp"></jsp:include>
现在它工作正常,没有错误。
所以这是我的问题:为什么?为什么我(显然)需要在 jsp:include 操作中使用绝对路径,而不是在 include 指令中?
【问题讨论】:
-
你可能想开始here。
标签: java jsp servlets path jspinclude