javax.servlet.ServletException:无法解析名为“dispatcherServlet”的servlet中名为“forward:/index”的视图

javax.servlet.ServletException:无法解析名为“dispatcherServlet”的servlet中名为“forward:/index”的视图,java,spring-boot,Java,Spring Boot,这是我的参考项目 https://github.com/Baeldung/spring-security-registration 我使用的是SpringBoot2,我想完全控制我的MVC。 因此,我使用@EnablWebMvc禁用自动配置,如下所示:- @Configuration @ComponentScan(basePackages = { "com.example.demo" }) @EnableWebMvc public class MvcConfig implements WebM

这是我的参考项目

https://github.com/Baeldung/spring-security-registration
我使用的是SpringBoot2,我想完全控制我的MVC。 因此,我使用@EnablWebMvc禁用自动配置,如下所示:-

@Configuration
@ComponentScan(basePackages = { "com.example.demo" })
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {

    public MvcConfig() {
        super();
    }

    @Autowired
    private MessageSource messageSource;

    @Override
    public void addViewControllers(final ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("forward:/index");
        registry.addViewController("/index");
        registry.addViewController("/loginRememberMe");
        registry.addViewController("/customLogin");
        registry.addViewController("/registration.html");
        registry.addViewController("/registrationCaptcha.html");
        registry.addViewController("/logout.html");
        registry.addViewController("/homepage.html");
        registry.addViewController("/expiredAccount.html");
        registry.addViewController("/badUser.html");
        registry.addViewController("/emailError.html");
        registry.addViewController("/home.html");
        registry.addViewController("/invalidSession.html");
        registry.addViewController("/console.html");
        registry.addViewController("/admin.html");
        registry.addViewController("/successRegister.html");
        registry.addViewController("/forgetPassword.html");
        registry.addViewController("/updatePassword.html");
        registry.addViewController("/changePassword.html");
        registry.addViewController("/users.html");
        registry.addViewController("/qrcode.html");
    }

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

    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/", "/resources/");
    }

    @Override
    public void addInterceptors(final InterceptorRegistry registry) {
        final LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
        localeChangeInterceptor.setParamName("lang");
        registry.addInterceptor(localeChangeInterceptor);
    }

    // beans

    @Bean
    public LocaleResolver localeResolver() {
        final CookieLocaleResolver cookieLocaleResolver = new CookieLocaleResolver();
        cookieLocaleResolver.setDefaultLocale(Locale.ENGLISH);
        return cookieLocaleResolver;
    }

    // @Bean
    // public MessageSource messageSource() {
    // final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
    // messageSource.setBasename("classpath:messages");
    // messageSource.setUseCodeAsDefaultMessage(true);
    // messageSource.setDefaultEncoding("UTF-8");
    // messageSource.setCacheSeconds(0);
    // return messageSource;
    // }


    @Bean
    @ConditionalOnMissingBean(RequestContextListener.class)
    public RequestContextListener requestContextListener() {
        return new RequestContextListener();
    }

    @Override
    public Validator getValidator() {
        LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
        validator.setValidationMessageSource(messageSource);
        return validator;
    }
我的资源文件夹结构是

现在,当我像这样打开应用程序时:-

http://localhost:8888/
我希望index.html页面能够打开。但不幸的是,它抛出了如下错误:-

javax.servlet.ServletException: Could not resolve view with name 'forward:/index' in servlet with name 'dispatcherServlet'
我试过了

registry.addViewController("/index");
registry.addViewController("/index.html");
没有任何效果。

删除MvcConfig上方的@EnableWebMvc

并更改尝试以下方法,更改两行,其他行相同:

@Override
    public void addViewControllers(final ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("forward:/index.html"); 
        registry.addViewController("/index.html");
        // add other lines

    }

您能否更改这两行代码并重新检查:registry.addViewController/.setViewNameforward:/index.html;registry.addViewController/index.html;