【问题标题】:JSP - Include a file from the resources folderJSP - 包含资源文件夹中的文件
【发布时间】:2017-09-12 14:00:30
【问题描述】:

如何将文件从资源路径包含到我的 jsp 文件中?具体路径应该是什么。使用@includejsp:include

我的目录结构:

我想包含resources/static/template/index.html home.jsp 中的包含路径。

【问题讨论】:

    标签: java spring jsp spring-mvc war


    【解决方案1】:

    您不应该在WEB-INF 的任何子目录中包含 .jsp 文件,如果 webapp 是您的 Web 应用程序的上下文根,则您无法在它之外包含任何内容,因为 include 指令和标准标签仅适用于上下文根目录下的文件。

    如果您要将整个resources 目录移动到webapp 下,那么您将能够使用以下方法之一:

    <%@include file="/resources/static/template/index.html"%>
    

    或者

    <jsp:include page="/resources/static/template/index.html"/>
    

    【讨论】:

    • 有道理。我正在阅读 Manning 的 Spring in Action,他们将 jsp 文件放在 WEB-INF/views 下,这是不好的做法吗?
    • 这取决于 .jsp 页面的用途。正如this answer 所说,servlet 容器不允许您直接访问该页面,出于安全原因,这将非常有用;但如果您的页面打算以这种方式访问​​,您要么必须在 web.xml 中指定一个 url 模式,否则您将无法浏览它
    【解决方案2】:

    我已经这样解决了

    • 将 .html 等静态文件从 src/main/resources/static/ 移动到 src/main/webapp/includes/。例如我这里有 header.html 和 footer.html。
    • 要包含 .html 文件,请使用
    • 要包含 .jsp 文件,请使用
    • 替换????与文件的相对路径

    【讨论】:

      【解决方案3】:

      尝试使用:

      <%@include file="../../resources/static/template/index.html" %>
      

      【讨论】:

      • '找不到文件 [...]'
      • 试试
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 2014-10-31
      • 1970-01-01
      • 2020-03-08
      • 2019-06-04
      • 1970-01-01
      相关资源
      最近更新 更多