2013-07-22 95 views
0

我正在嘗試將Spring MVC與我現有的應用程序集成。現有的應用程序上下文根爲PORTAL這裏是web.xml我Spring MVC的設置是將Spring MVC與現有應用程序集成

<servlet> 
     <servlet-name>spring</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>spring</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

一切正常,我能夠通過Spring MVC的訪問頁面。頁面從Controller獲取數據,但頁面不會加載css,img和js文件。
應用程序文件夾結構

src 
webapps 
-css 
-img 
-js 
-WEB-INF 
    --jsp 

JSP

<link rel="stylesheet" type="text/css" href="css/bootstrap.css"/> 
     <link rel="stylesheet" type="text/css" href="css/poc.css"/> 
     <script src="js/jquery.js"></script> 
     <script src="js/bootstrap.js"></script> 

錯誤

No mapping found for HTTP request 
with URI [/PORTAL/css/bootstrap.css] in DispatcherServlet with name 'spring' 

回答

2

由於Spring MVC工作在URL模式和圖像資源的每個請求從客戶端來了是單獨的要求,所以Spring是findi ng「/bootstrap.css」的匹配模式來識別是否有任何東西可用於此模式。

而且沒有資源映射對此,這就是爲什麼你得到這個錯誤。

你可以說春天,這些是我的資源,不要去任何測繪發現,如果請求與提到的URL一起。

放在spring-servlet.xml文件的下面一行。

<mvc:resources mapping="/PORTAL/css/" location="/PORTAL/css/" cache-period="0" /> 

這將幫助您擺脫css加載錯誤。但對於js和形象的問題依然存在, 所以,儘量保持在一個資源文件夾中的所有資源,並給像下面一個映射,

<mvc:resources mapping="/resources/**" location="/resources/" cache-period="0" /> 

此外,進口這上面XSD的XML文件,

http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 

希望這有助於。

0

在引用jscss文件時,您缺少ContextPath

前綴提及以下

<script src="${pageContext.request.contextPath}js/jquery.js"></script>

0

資源引用對於我的問題是,你的SpringDispatcherServlet映射到一切(<url-pattern>/</url-pattern>)。您可以將其映射到只有一種類型的資源,然後讓服務器爲其他類型服務。例如:

<servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
</servlet-mapping> 

然後你的CSS,圖像,視頻,applet的罐子等將直接由服務器提供服務,同時與.htm整理的URL將被Spring MVC提供服務。

如果需要,還可以爲Dispatcher servlet定義多個servlet映射。

相關問題