Конфигурация с помощью @Controller, InternalResourceViewResolver и ModelAndView в Spring MVC не работает

Я новичок в Spring MVC. Я знаю, что есть много подобных вопросов, но я уже пробовал большинство из них в течение нескольких часов и все еще сталкиваюсь с проблемой, что ошибка 404 появляется, когда я запрашиваю http://localhost:8080/SpringRESTFulExample/ из браузера. Но в консоли нет никаких исключений. Вот мой код,

RootConfig.java

@Configuration
@ComponentScan(basePackages = "springrestful_example")
public class RootConfig {

}

WebConfig.java

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "springrestful_example")
public class WebConfig extends WebMvcConfigurerAdapter{

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

    .
    .
    .
}

WebInitializer.java

public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] {RootConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[] {WebConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] {"/"};
    }
}

UserController.java

@RestController
public class UserController {

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public ModelAndView index(){
        ModelAndView modelandView = new ModelAndView("index");
        return modelandView;
    }
    .
    .
}

index.jsp находится в /WEB-INF/views/index.jsp

Зависимости я использую

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.3.9.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>4.3.9.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>4.3.9.RELEASE</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.0</version>
</dependency>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.3.10.RELEASE</version>
</dependency>


<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
 </dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.6</version>
</dependency>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

Это все, что я получил. Поправьте меня, если мой код неверен. Я буду счастлив, если увижу текст Hello World, написанный в теле index.jsp.

1 ответ

В каком пакете находятся ваши классы Config? Они в basePackages вы указываете? Попробуйте не указывать basePackages в аннотации сканирования компонентов.

Другие вопросы по тегам