Thymeleaf не перенаправляется на index.html

#java #spring #spring-boot #thymeleaf

#java #spring #весенняя загрузка #thymeleaf

Вопрос:

Я добавил Thymeleaf в свой проект Spring Boot.

Я создал HTML-файл в /resources/templates/index.html

Я добавил метод в свой @RestController:

 @RequestMapping("/")
public String index(Model model, OAuth2Authentication authentication) {
    // irreveland code here
    return "index";
}
  

Кажется, что этот метод вроде как работает, но вместо перенаправления меня на http://localhost:8080/templates/index.html у меня есть белая страница со словом «index» на ней (в источниках нет html, только слово index)

Я попытался поместить index.html страница в /resources/static и /resources для целей тестирования — никаких усилий.

Что здесь может пойти не так?

Ответ №1:

Вы пометили свой контроллер с помощью @RestController , что означает, что все возвращаемые значения обрабатываются как тела ответов ( @ResponseBody ). Это означает, что ваша строка "index" обрабатывается как таковая, а не как представление.

Чтобы использовать подход MVC, где "index" ссылается на вызываемое представление index.html , вы должны использовать @Controller аннотацию.

Комментарии:

1. Это оно… Я тестировал свой API, используя RestController, чтобы поиграть с postman, и я забыл его изменить. С аннотацией контроллера это работает как шарм

2. В приведенной выше ситуации вы увидите только слово «index», напечатанное в браузере, поскольку @RestContoller это комбинация @Controller и @ResponseBody . Это просто возвращает объект и объектные данные, которые напрямую записываются в HTTP-ответ в виде текста. В вашем случае вы, вероятно, создаете карту, а затем указываете, какой вид использовать для отображения результатов. Для этого потребуется @Controller аннотация. Для получения дополнительной информации, пожалуйста, прочитайте < javarevisited.blogspot.com/2017/08 /… .>