【问题标题】:Cannot use the "include file" in JSP无法在 JSP 中使用“包含文件”
【发布时间】:2023-03-12 11:51:01
【问题描述】:

我想问一个关于 JSP 页面的问题。为了有效地管理项目,我将项目设置为以下结构。当我在列表文件夹 main.jsp 中时,我将标题设置为以下内容

<%@ include file="universe/header.jsp" %>

当我打开 main.jsp 时,它显示错误

找不到“jsp/list/universe/header.jsp”

无法读取 header.jsp 和其他类。谁能帮我解决这个问题?谢谢。

类结构

webapp
|
|-- jsp
    |
    |-- list
    |   |
    |   |--main.jsp
    | 
    |-- universe
        |
        |-- header.jsp
        |-- footer.jsp

【问题讨论】:

  • 从您的结构看来,universe 位于 jsp/ 下,而不是错误消息中的 jsp/list/ 下 -- 如果我没看错,那么 file="../universe/header .jsp" 可能有用吗?

标签: jsp


【解决方案1】:

在 JSP 包含指令中,路径可以是相对于包含页面的路径,也可以是绝对路径(然后它必须以 / 开头并属于 web 应用程序根目录)。

所以在这种情况下,您必须将路径设置为../universe/header.jsp/jsp/universe/header.jsp

【讨论】:

    【解决方案2】:

    在 JSP 包含指令中,路径可以是相对的。

    你可以这样使用它

    <%@ include file="/jsp/universe/header.jsp" %>
    

    您可以参考许多网站上的指令。最好的一个是sun java 网站。

    或者你可以访问这个页面Include Directive

    【讨论】:

      【解决方案3】:

      这取决于您是否使用类路径来定位文件。如果你使用类路径来定位你的文件,那么它应该在你的类文件夹中

      【讨论】:

      • 很抱歉,这不适用于 Web 应用程序中的 JSP 文件。这里的 JSP 文件不仅仅是要定位的简单资源文件。 JEE 上下文中的 Web 应用程序具有已定义的结构。查看jsptube.com/servlet-tutorials/… 通常 /WEB-INF/classes 和 /WEB-INF/lib 中的 JAR 位于类路径中,而 JSP 文件始终位于这些文件夹之外。
      猜你喜欢
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      • 2014-02-08
      • 2011-08-03
      • 2017-10-25
      • 2016-02-19
      • 2017-02-04
      相关资源
      最近更新 更多