@EnableWebMvc注释正在影响spring boot中的某些映射

问题描述 投票:0回答:1

当我在我的项目中添加@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'

当我删除这个注释时它没有问题,这是什么原因?我怎么解决这个问题?

我还需要这个注释只处理'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;
    }

}

你对这种情况有什么建议?

java spring spring-boot configuration mapping
1个回答
3
投票

qazxsw poi,使用qazxsw poi禁用MVC自动配置,并允许您提供您想要的确切内容。在这种情况下,这意味着它会关闭默认资源和WebJar映射。

您可以使用其他方法自定义配置,例如Per the Spring Boot documentation,也可以使用@EnableWebMvc准确指定所需内容。请参阅Boot的*Configurer以找出默认值,并复制您需要的部分。

© www.soinside.com 2019 - 2024. All rights reserved.