JSP包含页面失败,请求request.getContextPath()

时间:2016-09-24 16:03:40

标签: java jsp scriplets

我正在尝试将jsp页面包含在另一个页面中,因为我不想硬编码路径,所以我想使用request.getContextPath()方法。 但我无法让它发挥作用。我根据各种答案尝试了各种各样的事情:

我做的第一件事是

<jsp:include  page="<%=request.getContextPath()%>/structure/Navbar.jsp" />

给了我:

HTTP Status 500 - /structure/ArtiMarziali/Aikido.jsp (line: 11, column: 24) attribute value for [page] is not properly terminated

所以我试过了:

<% String aikido = request.getContextPath() + "/structure/Navbar.jsp"; %>
<jsp:include  page="<%= aikido %>" />

抛出异常:

HTTP Status 500 - javax.servlet.ServletException: File [/ProgettoPW/structure/Navbar.jsp] not found

然后:

<jsp:include  page="<%= request.getContextPath() + "/structure/Navbar.jsp"  %>" />

说我需要逃避引号,我实在无法做到

<jsp:include  page='<%= request.getContextPath() + "/structure/Navbar.jsp"  %>' />

给出与第一个相同的错误。我尝试将getContextPath的结果设置为变量并在标记中使用它,但是错误与之前相同。

我真的不知道我有什么问题,我需要一些帮助,谢谢。

(是的,我知道现在使用&lt;%=%&gt;和其他scriptlet是不受欢迎的,但我的课程是这样教的,我想坚持这个项目)

编辑:这是文件结构,可能很有用:

enter image description here

1 个答案:

答案 0 :(得分:2)

路径已经相对上下文路径,因此您无需在include指令中添加它(希望如此),这意味着这将有效:

<jsp:include page="/structure/Navbar.jsp" />