jsp:include运行时给出404

时间:2018-01-13 07:15:57

标签: java jsp include

我的目录树是这样的,

- /index.jsp
- /template/topHeader.jsp
- /accounts/signin.jsp

在我的index.jsp中,我已经包含topHeader.jsp这样的内容,

<jsp:include page="template/topHeader.jsp" />

这没关系,没问题。但是在topHeader.jsp我有一些<a>标签,我已经给出了路径,

<div class="pull-left">
    Hello! <a href="../accounts/signin.jsp">Sign in</a>.
</div>

运行后,此链接提供404,这是可以理解的,因为索引页已经在根文件夹中。现在,将来我可能不得不在任何地方都包括topHeader.jsp

浏览器会像这样更改网址

localhost:8084/project/index.jsp

点击登录后(404)

localhost:8084/accounts/signin.jsp

但路径应为

localhost:8084/project/accounts/signin.jsp

我也试过以下列方式包含topHeader.jsp,但结果相同。

<%@ include file="template/topHeader.jsp" %>

那么提供<a>标记路径的最简单方法是什么。对不起,这个问题似乎有点不清楚,但我不知道如何更好地解释它。

1 个答案:

答案 0 :(得分:2)

使用${pageContext.request.contextPath}提供指向链接的相对路径

<a href="${pageContext.request.contextPath}/accounts/signin.jsp">Sign in</a>