我的目录树是这样的,
- /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>
标记路径的最简单方法是什么。对不起,这个问题似乎有点不清楚,但我不知道如何更好地解释它。
答案 0 :(得分:2)
使用${pageContext.request.contextPath}
提供指向链接的相对路径
<a href="${pageContext.request.contextPath}/accounts/signin.jsp">Sign in</a>