/ / Неможливо змусити роботу весняного MVC - java, spring, model-view-controller, thymeleaf

Не вдається виконати роботу Spring MVC - java, spring, model-view-controller, tymmel

Я працюю з Spring MVC і намагаюся зрозуміти, як працює контролер / перегляд частини, але я отримую помилку 404 на "/" та будь-який інший маршрут, який я пробую. Я спробував додати @EnableWebMVC до мого основного класу, але це дає мені 500 помилок Could not resolve view with name "index" in servlet with name "dispatcherServlet" та виняток, перелічений нижче.

Мій контролер:

public class MyController {
@RequestMapping("/")
public String index(Model model) {
return "index";
}
}

У мене є обидва /src/main/resources/static/index.html /.../resources/templates/index.html , оскільки я все ще новачок у Весна / Чебрець, і я не впевнений, над чим слід працювати

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Could not resolve view with name "index" in servlet with name "dispatcherServlet"] with root cause

javax.servlet.ServletException: Could not resolve view with name "index" in servlet with name "dispatcherServlet"

Відповіді:

0 для відповіді № 1

Вам не потрібно /src/main/resources/static/index.html файл, тому що це буде лише статична сторінка для вашої програми.

Щоб мати динамічно генеровану сторінку в результаті виклику контролера, вам потрібен шаблон, в якому повинен знаходитися /src/main/resources/templates.

Додатково потрібен механізм роздільної здатності переглядущоб Spring MVC працював належним чином, тому що Spring повинен бути в змозі з'ясувати, що робити, якщо ви повернете ім'я перегляду "index" у вашому методі контролера. Рамка повинна якось "знати", що це повинно викликати візуалізацію шаблону src/main/resources/templates/index.html використовуючи відповідний механізм шаблону, наприклад Чебрець. Детальніше дивіться тут: https://docs.spring.io/spring/docs/5.0.4.RELEASE/spring-framework-reference/web.html#mvc-viewresolver

Оскільки ви хочете використовувати Thymeleaf, будь ласка, зверніться до цього підручника щодо інструкцій, як налаштувати його як двигун шаблону для Spring MVC: http://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html

Підказка: Якщо ви використовуєте Spring Boot, все це можна досягти за допомогою автоматичної конфігурації, якщо ви просто додасте ці дві залежності до своєї програми:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>