2012-05-08 46 views
4

我使用一個jsp文件作爲來自控制器的模型,我想使用CSS樣式和js庫春沒有找到資源文件(CSS,JSP ...)

  • Proyect
    • 網絡內容
    • 資產
    • WEB-INF
      • JSP

在web.xml:

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<welcome-file-list> 
    <welcome-file>/WEB-INF/jsp/index.jsp</welcome-file> 
</welcome-file-list> 

<!-- Processes application requests --> 
<servlet> 
    <servlet-name>MyProject</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/applicationContext.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>MyProject</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

</web-app> 

在applicationContext.xml中:

<context:annotation-config /> 
<context:component-scan base-package="main.mypack.controller" /> 



<bean 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/jsp/" /> 
    <property name="suffix" value=".jsp"/> 
</bean> 

在我的JSP文件:HREF =「/資產/ CSS/jquery.mobile。 fixedToolbar.polyfill.css「

Noy工作,任何幫助嗎?

編輯:我使用的是2.5 Spring版本,並且出現如下錯誤:在名爲'MyProject'的DispatcherServlet中找不到URI的HTTP請求的映射[/MyProject/assets/js/jqm-project.js]

回答

13

問題是,你對CSS和JS文件的請求正在通過Dispatcher Servlet,這是不正確的。因此,Spring將無法找到那些不會加載它們的文件的映射。

您需要在applicationContext.xml文件中爲您的應用程序添加resourceHandler,如下所示。該配置將繞過Dispatcher Servlet中對CSS和JS文件的請求。

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

希望這可以幫助你...乾杯。

請把下面的代碼在web.xml

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.css</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.js</url-pattern> 
</servlet-mapping> 
+0

謝謝,它適用於女巫彈簧3.X,但我使用2.5,該版本的任何解決方案? – Marta

+0

默認映射不起作用... :-( 我發佈了我的解決方案 – Marta

2

自動解決:

這種映射阻擋的一切,我改變了:

<servlet-mapping> 
     <servlet-name>MyProject</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

對於這個(我改變我的電話「call.do」):

<servlet-mapping> 
     <servlet-name>MyProject</servlet-name> 
     <url-pattern>*.do</url-pattern> 
    </servlet-mapping> 

它的工作原理!

+0

總是建議不要在使用任何框架(如struts或spring)時使用/ as url映射始終嘗試使用url作爲* .do或* .htm以避免不必要的阻塞 – dharam