Я пытаюсь создать приложение "hello world" с помощью gradle, spring boot и spring mvc с простейшим разрешением и html-представлением.
Я начал с thymeleaf spring пример загрузки, и я просто хотел удалить thymeleaf, чтобы сделать более простое приложение mvc, используя чистый html и InternalResourceViewResolver. У меня есть один greeting.html Я хочу служить, который находится в src/main/webapp/WEB-INF. Когда я запускаю приложение, я получаю
No mapping found for HTTP request with URI [/WEB-INF/greeting.html] in DispatcherServlet with name 'dispatcherServlet'
Это обычная ошибка, и в Интернете есть много ответов, но ничего не помогает.
Вот мой Application.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Вот мой GreetingController.java
@Controller
public class GreetingController {
@RequestMapping("/greeting")
public String greeting() {
return "greeting";
}
}
Вот мой MvcConfiguration.java
@Configuration
@EnableWebMvc
public class MvcConfiguration extends WebMvcConfigurerAdapter{
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/");
resolver.setSuffix(".html");
return resolver;
}
}
Я запускаю его с помощью gradle bootRun
Вот репо с кодом: https://github.com/driver-pete/spring-mvc-example
Вот еще несколько подсказок:
- Разрешение просмотра Thymeleaf отлично работает
- InternalResourceViewResolver разрешает правильный путь
- WEB-INF и greeting.html, похоже, присутствуют в военном файле
- У меня нет jsp или jstl, поэтому я не пропускаю эти банки, поскольку некоторые могут предложить
Моя гипотеза заключается в том, что сервлет диспетчера каким-то образом настроен на работу в /* вместо/like здесь и везде. Однако у меня нет web.xml, поэтому эти рекомендации здесь не применяются. Я вижу много примеров, как настроить программный сервлет диспетчера программно, но я хочу, чтобы мое приложение было минимальным, и я подозреваю, что загрузка spring должна быть настроена на него, так как отлично работает с тимелеафом.