使用Spring MVC 3显示文件png,jpg,... JSP

时间:2011-09-02 13:02:48

标签: jsp spring-mvc jstl

我正在开发一个Spring MVC 3 Web应用程序,我有一些适用于异常的JSP,我在显示图像-gif,jpeg等方面遇到了一些问题。我在JSP方面试过这些:

<img alt="TestDisplay" src="../images/XXX.gif" />
<img src="<c:url value=""/>images/XXX.gif" alt="TestDisplay"/>
<img src="<c:url value="/"/>images/XXX.gif" alt="TestDisplay"/>
<img src="<c:url value="../images/XXX.gif"/>" alt="TestDisplay"/>
<img src="<c:url value="/"/>WEB-INF/images/XXX.gif" alt="TestDisplay"/>
<img src="<c:url value="../WEB-INF/images/XXX.gif"/>" alt="TestDisplay"/>
<img src="<%=request.getContextPath()%>/images/XXX.gif" alt="TestDisplay" />
<img src="images/XXX.gif" alt="TestDisplay"/>
<img src="<spring:url value="/images/XXX.gif" htmlEscape="true" />" align="right"     alt="TestDisplay"/>

但我不确定真正的问题是来自页面还是任何地方。任何有用的答案都将被评定。

应用程序层次结构树:

/ web应用

//图像

+ XXX.gif

// WEB-INF

///图像

+ XXX.gif

是的,我知道图片文件夹是重复的,我只是尝试上述任何选项。

提前致谢

3 个答案:

答案 0 :(得分:4)

正确用法是:

<img src="<c:url value="/images/XXX.gif" />" alt="TestDisplay"/>

客户无法访问WEB-INF中的文件。

答案 1 :(得分:1)

您需要添加到applicationContext.xml

<mvc:resources mapping="/images/*" location="/images/" />

告诉Dispatcher Servlet您将使用此位置的资源

<mvc:default-servlet-handler />

使用conteiner的默认servlet进行静态资源处理。

有关它的更多信息 - http://static.springsource.org/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-default-servlet-handler

答案 2 :(得分:0)

您必须修改以下代码。这应该可以正常工作。

在xxx-servlet.xml

<context:component-scan base-package="com.asset" />
    <mvc:resources mapping="/resources/**" location="/resources/" />

在资源中添加图片或CSS文件夹 例如WebContent / resources / images / logo.png

使用此声明访问图像

<img src="<%=request.getContextPath() %>/resources/images/logo.png"></a>