Ошибка разрешения шаблона [/], шаблон может не существовать или может быть недоступен для любого из настроенных преобразователей шаблонов - PullRequest
0 голосов
/ 19 марта 2020

Я использую весеннюю загрузку 2.2.2, со старой пружиной и зависимостями она работала, и теперь тот же код не работает

package com.project.productapp.controller;

import com.project.productapp.service.ProductService;
import com.project.productapp.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;

@Controller
public class ProductController {

@Autowired
ProductService productService;

@Autowired
private UserRepository repository;

@GetMapping(path = "/products")
public String getProducts(Model model){
    model.addAttribute("products", repository.findAll());
    return "product";
}

@GetMapping(path = "/logout")
public String logout(HttpServletRequest request) throws ServletException {
    request.logout();
    return "/";
}
}

Ни getProducts, ни выход из системы не работают. Если я установлю точку останова, она попадет. Я запрашиваю его с помощью браузера, перейдя на http://localhost: 8081 / logout

Ошибка:

Чт 19 марта 11:58:45 CET 2020 There произошла непредвиденная ошибка (тип = Внутренняя ошибка сервера, статус = 500). Ошибка разрешения шаблона [/], шаблон может не существовать или может быть недоступен для любого из настроенных преобразователей шаблонов org.thymeleaf.exceptions.TemplateInputException: Ошибка разрешения шаблона [/], шаблон может не существовать или может быть недоступен любому из настроенные резолверы шаблонов в org.thymeleaf.engine.TemplateManager.resolveTemplate (TemplateManager. java: 869) в org.thymeleaf.engine.TemplateManager.parseAndProcess (TemplateManager. java: 607) в org.thprolateEaf. (TemplateEngine. java: 1098) в org.thymeleaf.TemplateEngine.process (TemplateEngine. java: 1072) в org.thymeleaf.spring5.view.ThymeleafView.renderFragment (ThymeleafView. java: 362) в орг. thymeleaf.spring5.view.ThymeleafView.render (ThymeleafView. java: 189) в org.springframework.web.servlet.DispatcherServlet.render (DispatcherServlet. java: 1373) в org.springframework.web.Serlet. processDispatchResult (DispatcherServlet. java: 1118) в org.springframework.web.servlet.D ispatcherServlet.doDispatch (DispatcherServlet. java: 1057) в org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet. java: 943) в org.springframework.web.servlet. *: 1006) в org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet. java: 898) в javax.servlet.http.HttpServlet.service (HttpServlet. java: 634) в org.springbrame .servlet.FrameworkServlet.service (FrameworkServlet. java: 883) по адресу javax.servlet.http.HttpServlet.service (HttpServlet. java: 741)

product.ftl расположен правильно ( в функции выхода из системы это даже не нужно)

http://localhost:8081/logout

1 Ответ

0 голосов
/ 19 марта 2020

Хорошо, я понял это.

Я пытаюсь отобразить product.ftl , и расширение по умолчанию больше не поддерживается , основываясь на этом веб-сайте http://zetcode.com/springboot/freemarker/. Некоторое время он работал go, потому что я использовал старую загрузочную версию Spring. В более новых расширениях .ftlh теперь используется по умолчанию.

Исправление заключается в установке суффикса freemarker в application.properties следующим образом:

spring.freemarker.suffix=.ftl

Если у вас возникнут проблемы с этим распознаванием настроек, в pom. xml должно быть достаточно следующей зависимости

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

зависимость spring-boot-starter-thymeleaf, которую я Используется вызвало у меня некоторые проблемы, поэтому удалите его, если необходимо.

...