2016-11-22 32 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