当我在项目中添加@EnableWebMvc注释时,它不会映射webjars和favicon。
当我加载调用webjars的索引页面时,我收到此警告:
No mapping found for HTTP request with URI [/webjars/bootstrap/4.0.0-beta.2/css/bootstrap.min.css] in DispatcherServlet with name 'dispatcherServlet'
No mapping found for HTTP request with URI [/webjars/jquery/3.2.1/jquery.min.js] in DispatcherServlet with name 'dispatcherServlet'
No mapping found for HTTP request with URI [/favicon.ico] in DispatcherServlet with name 'dispatcherServlet'
当我删除这个anotation时它没有问题,这是什么原因?我该如何解决这个问题?
我还需要这个注释来处理' NoHandlerFoundException'像这样:
@ControllerAdvice
public class ControllerExceptionHandler {
@ExceptionHandler(NoHandlerFoundException.class)
public ModelAndView handlerNoHandlerFoundException() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("errorpage");
modelAndView.addObject("errorTitle", "404 Not Found ");
modelAndView.addObject("errorDescription", "The page you are looking for is not available now!!! ");
System.out.println("ERROR :::::::::::::::::::::: no handler");
return modelAndView;
}
}
你对这种情况有什么建议?
答案 0 :(得分:3)
Per the Spring Boot documentation,使用@EnableWebMvc
禁用MVC自动配置,并允许您准确提供所需内容。在这种情况下,这意味着它会关闭默认资源和WebJar映射。
您可以使用其他方式自定义配置,例如*Configurer
,也可以使用@EnableWebMvc
准确指定所需内容。请参阅Boot WebMvcAutoConfiguration
以找出默认值,并复制您需要的部分。