我正在尝试使用重定向标记将索引页面定位到驻留在我的Web项目的JSP文件夹中的主页。我的项目的层次结构如下:
WEB-INF jsp home.jsp index.jsp
我正在使用库jstl 1.2和standard.jar 以下是我的index.jsp
的代码<%@ taglib prefix="core" uri="/tags/c" %>
<core:redirect url="/home"></core:redirect>
当我运行项目时,我收到以下错误;
HTTP Status 404 - /JSTL/home type Status report message /JSTL/home description The requested resource (/JSTL/home) is not available.
答案 0 :(得分:1)
/WEB-INF
中的文件无法公开访问(在浏览器地址栏中输入其地址时无效)。 <jsp:include>
和使用RequestDispatcher
的任何servlet是唯一可以访问它们的servlet。
因此,如果您有一个映射在/*
上的控制器servlet,并按如下方式调度请求
request.getRequestDispatcher("/WEB-INF/jsp" + request.getPathInfo() + ".jsp").forward(request, response);
然后您的<c:redirect>
将有效。但是,如果您没有这样的控制器,那么您应该使用<jsp:include>
或将home.jsp
移动到公共网页内容(您的index.jsp
也在那里)并重定向到{{1}而不是。
与此问题无关,您声明JSTL标记库的方式并没有让我感觉您正在以正确的方式做事或阅读正确的教程。我建议你看一下我们的JSTL tag wiki。
答案 1 :(得分:0)
您需要重定向到“/home.jsp”,而不仅仅是“/ home”。