【问题标题】:how to load image from java project's resource/images folder?如何从 java 项目的资源/图像文件夹中加载图像?
【发布时间】:2013-10-19 05:34:40
【问题描述】:

我正在使用 Sprng MVC 开发一个购物车,卖家可以从中上传产品图片及其描述。我可以将图像上传到webapp/resources/images 文件夹。现在,当任何用户打开我的网站时,我必须将所有这些图像加载到仪表板页面(主页)。我无法从该位置加载这些图像。

在我的 jsp 中,我正在编写这样的最终代码:

<img src="resources/images/product1.jpg"/>

如何将此文件夹添加到类路径以便它可用。我正在使用 Spring MVC 和 MAVEN。

请告诉我如何实现这一目标。

【问题讨论】:

  • 可以分享图片上传到资源文件夹的代码吗??

标签: java spring maven load classpath


【解决方案1】:

在 JSP 中使用 Expression Language (EL)

<img src="${pageContext.request.contextPath}/resources/images/product1.jpg"/>

【讨论】:

  • +1 这应该会自动附加 /webapp/ 并解决 OP 的问题。
  • ${pageContext.request.contextPath} 给了我我的项目文件夹的名称,并且 url 正在形成 /myShoppingCart/resources/images/product1.jpg 并且图像没有出现
  • 能否分享图片上传到资源文件夹的代码。
【解决方案2】:

据我了解,您已将图像上传到服务器上的单独文件夹,并且您希望将该文件夹包含在类路径中以检索和显示 JSP 上的图像。

在 Spring MVC 中,您可以通过在 'file:' 前面加上 URL 资源:

来强制使用绝对路径(相对于系统的根目录)
// actual context type doesn't matter, the Resource will always be UrlResource`
ctx.getResource("file:/root/webapp/resources/images");

// force this FileSystemXmlApplicationContext to load its definition via a UrlResource`
ApplicationContext ctx =
        new FileSystemXmlApplicationContext("file:/root/webapp/resources/images");`

这是通过指定绝对 URL 添加图像目录的一种方法。

如果您的图像目录相对于当前目录并且想要添加到您的类路径,那么以下方法将起作用:

ApplicationContext ctx =
    new FileSystemXmlApplicationContext("resources/images");

这相对于当前工作目录起作用。图像将从文件系统位置加载,在这种情况下相对于当前工作目录。因此,我们已将目录添加到类路径中。同样,您也可以在 XML 中进行类路径配置。

<mvc:resources mapping="/resources/**"
               location="classpath:resources/images"
               cache-period="10000" />

<mvc:resources mapping="/resources/**"
               location="file:/root/webapp/resources/images"
               cache-period="10000" />

我们现在可以在您的 JSP 中检索图像,如下所示

<img src="${pageContext.request.contextPath}/resources/images/user.jpg"/>

上面的 EL ${pageContext.request.contextPath} 确保 Context 总是在前面。

注意:在 Spring 3.2.2 中,the Context path is prepended automatically if not present.

【讨论】:

    【解决方案3】:

    我能够解决这个问题: 在 Spring 配置中添加了以下资源声明

    <resources mapping="/resources/**" location="/resources/" />
    

    在jsp中

    <img src="<c:url value="/resources/images/product1.jpg" />" alt="" />
    

    感谢大家的帮助,您的指导确实帮助我找到了这个问题的答案。

    【讨论】:

    • 我能够解决这个问题:在 Spring 配置 和 jsp " alt="" /> 感谢大家的帮助,您的指导确实帮助我找到了这个问题的答案。
    猜你喜欢
    • 2013-03-12
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 2015-09-12
    • 2011-03-27
    • 2022-08-23
    • 1970-01-01
    • 2019-09-15
    相关资源
    最近更新 更多