2016-11-22 31 views
0

嗨,我有簡單的Spring應用程序:春天 - 無法獲得的資源(405錯誤)

WebConfig.java:

package spittr.web; 

@Configuration 
@EnableWebMvc 
@ComponentScan("spittr.web") 
public class WebConfig extends WebMvcConfigurerAdapter { 

     @Override 
     public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     super.addResourceHandlers(registry); 
     } 

    @Bean 
    public ViewResolver viewResolver() { 
     InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
     resolver.setPrefix("/WEB-INF/views/"); 
     resolver.setSuffix(".jsp"); 
     return resolver; 
    } 

    @Override 
    public void configureDefaultServletHandling(
      DefaultServletHandlerConfigurer configurer) { 
     configurer.enable(); 
    } 

} 

registerForm.jsp:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="sf" %> 
<%@ page session="false" contentType="text/html; charset=UTF-8" %> 
<html> 
    <head> 
    <title>Spittr</title> 
    <link rel="stylesheet" type="text/css" 
      href="<c:url value="/resources/style.css" />" > 
    </head> 
    <body> 
    <h1>registration</h1> 

<sf:form method="POST" commandName="spitter" > 

     <sf:errors path="*" element="div" cssClass="errors" /> 

     <sf:label path="firstName" 
      cssErrorClass="error">name</sf:label>: 
     <sf:input path="firstName" cssErrorClass="error" /><br/> 

     .... 

     <input type="submit" value="register" /> 
    </sf:form> 
    </body> 
</html> 

,當我在上面GET註冊形式:

@RequestMapping(value="/register", method=GET) 
    public String showRegistrationForm(Model model) { 
     model.addAttribute("spitter", new Spitter()); 
    return "registerForm"; 
    } 

CSS文件沒有加載,我得到了JSP頁面,但是沒有CSS樣式並且在Tomcat控制檯中有錯誤:

127.0.0.1 - - [22/Nov/2016:18:04:48 +0100]「GET /Spittr-0.0.1-SNAPSHOT/resources/style.css HTTP/1.1「405 1045

問題在哪裏? CSS文件位於路徑/Spittr-0.0.1-SNAPSHOT/resources/style.css並且我指定了默認資源處理程序,所以爲什麼JSP頁面無法獲取此靜態文件。

感謝您的任何意見:)

回答

0

確定我得到這個:

1-從WebMvcConfigurationSupport覆蓋resourceHandlerMapping()

@Override 
@Bean 
public HandlerMapping resourceHandlerMapping() { 
    AbstractHandlerMapping handlerMapping = (AbstractHandlerMapping) super.resourceHandlerMapping(); 
    handlerMapping.setOrder(-1); 
    return handlerMapping; 
} 

2 - 壓倒一切的addResourceHandlers()來自WebMvcConfigurationSupport/WebMvcConfigurerAdapter