1

我正在尝试将我在 JSP 中创建的 HTML 文件包含在内,但我遇到了一个奇怪的错误,我认为这与文件所在的路径有关。我正在使用 IntelliJ IDEA 并为 Google App Engine 进行开发。

我的问题是当我使用标签时:

<c:import url="/HTML/sidebar.html"/>

页面看起来像这样

错误 404 /JSP/JSP/FrontPage.jsp

这就是内容!!

当我不使用导入标签时,页面会生成并简单地说

这就是内容!!


我的网络目录如下所示:

  • 网络
    • CSS
    • HTML
      • 边栏.html
    • JSP
      • FrontPage.jsp
    • 网络信息

FrontPage.jsp中,我有以下内容:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>

<body>
      <div class="sidebar">
          <c:import url="/HTML/sidebar.html"/>
      </div>
      <div class="content">
          this is the content!!
      </div>
</body>
</html>

sidebar.html文件非常基础:

<ul>
  <li>Home</li>
  <li>Blog</li>
  <li>Projects</li>
  <li>Contact</li>
</ul>

最后,我让服务器处理了到目前为止只有doGet方法的首页:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("On Front Page!");
    request.getRequestDispatcher("JSP/FrontPage.jsp").forward(request,response);
}

更新:我在 eclipse 中尝试了这些文件和相同的 web 目录,它可以正常工作,所以 IntelliJ 的工作方式必须有所不同。谁能解释如何在 IntelliJ 中进行这项工作?谢谢!

4

1 回答 1

1

使用<c:import>标签作为

<c:import url="HTML/sidebar.html"/>

由于标签可以从应用程序上下文之外导入,因此/导致问题。指定的路径是相对于当前正在处理的 URL 请求的;所以,相应地调整它。

于 2013-08-24T19:31:28.897 回答