2012-05-24 32 views
0

我正在使用Spring MVC 3.0。如何從jsp訪問圖像?

我必須加載與WEB-INF目錄平行的文件夾「images」中存在的圖像。

我在WEB-INF/jsp文件夾中有jsp文件。

的文件夾結構是:

-app 
--images 
--WEB-INF 
---jsp 
---classes 
... 

在web.xml中爲DispatcherServlet的URL映射爲像

<servlet-mapping> 
    <servlet-name>test</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
在JSP

現在有些事情,如果我以下列方式加載在jsp:

<img src="<%=request.getContextPath()%>/images/calogo.jpg" /> 

它現在的工作DispatcherServlet是攔截它我猜。

+0

它可以幫助你。 看看這個 [點擊這裏] [1] [1]:http://stackoverflow.com/questions/8923466/spring-mvchow-to-get-file-path-into-控制器 –

回答

1

你是對的。您的調度員正在攔截您的顯示圖像的請求。

根據我當你試圖訪問你的jsp文件中的圖像時,它會給你404錯誤。

您需要在servlet.xml文件中包含以下代碼行。

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

然後一切都會奏效。

希望這可以幫助你。

乾杯。

+0

Yaah ...現在我可以訪問這些圖像,但實際的請求沒有被攔截。我得到一個正常的404要求。 – gnreddy

+0

然後檢查您的請求映射。或者顯示您在控制檯中遇到的錯誤。 –

+0

我將下面幾行添加到我的xml中,並開始工作。 ' '。有些正文可以解釋它的含義 – gnreddy

0

如果映射/DispatcherServlet,務必使默認的servlet處理在Spring的配置:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" /> 

<!-- add this to make Spring properly handle resources (e.g., images) --> 
<mvc:default-servlet-handler /> 

另外,不要使用<%...語法使用JSTL:

<img src="<c:url value="/images/calogo.jpg" />" /> 

(或更好 - 根本不使用JSP,例如使用ThymeLeaf

+0

我收到以下異常
'javax.servlet.ServletException:處理程序沒有適配器[public java.lang.String com.ca.myca.controllers.WelcomeController.getStarted()]:您的處理程序是否實現了受支持的接口控制器? \t org.springframework.web.servlet.DispatcherServlet.getHandlerAdapter(DispatcherServlet.java:1077)' – gnreddy