我试图在另一个页面中包含一个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的结果设置为变量,并在标记中使用它,但是错误与以前相同。

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

(是的,我知道现在不习惯使用和其他脚本,但是我的课程是通过这种方式进行授课的,我希望在项目中坚持使用它)

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

java - JSP包含页面因request.getContextPath()而失败-LMLPHP

最佳答案

该路径已经相对于上下文路径,因此您无需(希望)将其添加到include指令中,这意味着它将起作用:

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

10-05 21:34