【问题标题】:Error 404 when using the <c:import> JSTL tag to import an HTML file in another folder in a JSP使用 <c:import> JSTL 标记在 JSP 的另一个文件夹中导入 HTML 文件时出现错误 404
【发布时间】:2013-08-24 18:56:43
【问题描述】:

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

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

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

页面是这样的

错误 404 /JSP/JSP/FrontPage.jsp

这是内容!!

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

这是内容!!


我的网络目录如下所示:

  • 网络
    • CSS
    • HTML
      • sidebar.html
    • JSP
      • FrontPage.jsp
    • WEB-INF

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 中进行这项工作?谢谢!

【问题讨论】:

    标签: java google-app-engine jsp intellij-idea jstl


    【解决方案1】:

    使用&lt;c:import&gt;标签作为

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

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

    【讨论】:

    • 不走运,我的页面仍然看起来像 Error 404 /JSP/JSP/FrontPage.jsp 这是内容!!
    猜你喜欢
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 2021-08-31
    • 1970-01-01
    相关资源
    最近更新 更多