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

问题描述:

我想包括一个jsp页面在另一个,因为我不想硬编码路径我想要使用request.getContextPath()方法。 但我不能得到它的工作。我已经试过各种事情,基于不同的答案在这里: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的结果设置为变量并在标记中使用该变量,但是与以前相同的错误。

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

(是的,我知道,使用<%=%>和其他小脚本是在时下皱起了眉头,但我的课程讲授这种方式,我想坚持下去的项目)

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

enter image description here

+0

你试过简单的''? –

+0

是的,它的工作原理,但我真的不明白为什么它如果我这样做,但不与getContextPath()。链接的CSS文件和图像适用于它,但不包括jsp包括。 (正如我所说,我不想使用硬编码的路径,以防我动起来) – Paul

+0

它的工作原理是因为路径已经相对于上下文路径,所以希望我们不需要添加它 –

的路径已经相对上下文路径这样,你有没有需要添加在你include直接ive(希望),这意味着这将工作:

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