Spring Thymeleaf не может разрешить шаблоны - PullRequest
0 голосов
/ 16 сентября 2018

Моя проблема в том, что я не могу показать шаблон Thymeleaf. Я подозреваю, что ошибка конфигурации, но я не могу найти ее. Заранее спасибо:)

pom.xml:

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
...
<properties>
        ...
        <thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
        <thymeleaf-layout-dialect.version>2.0.3</thymeleaf-layout-dialect.version>
    </properties>
...
<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>
        <dependency>
            <groupId>nz.net.ultraq.thymeleaf</groupId>
            <artifactId>thymeleaf-layout-dialect</artifactId>
        </dependency>

Шаблон находится в: src/main/resources/templates/home.html

Конфигурация пружины:

server.servlet.context-path=/mityo
server.port=8080
...
spring.thymeleaf.enabled=true
spring.thymeleaf.cache=false
spring.thymeleaf.check-template=true
spring.thymeleaf.check-template-location=true
spring.thymeleaf.mode=html5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.suffix=.html
spring.thymeleaf.prefix=/resources/templates/

Контроллер:

@Controller
@RequestMapping("buy")
public class HomeController {

    public String buy(Model model) {
        return "home";
    }
}

Я пытаюсь получить доступ: localhost:8080/mityo/buy и получаю 404.

Другое дело, может кто-нибудь объяснить (или дать ссылку на документацию), какой сервлет используется для «возврата» шаблонов html? Это сервлет весеннего диспетчера?


Хорошо, поэтому я забыл @GetMapping, спасибо @benjamin c. Однако, добавив его, вы получите:

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "home", template might not exist or might not be accessible by any of the configured Template Resolvers

Ответы [ 3 ]

0 голосов
/ 16 сентября 2018

Чтобы избежать ответа 404, добавьте аннотацию @GetMapping к методу buy.

@GetMapping
public String buy(Model model) {
    return "home";
}
0 голосов
/ 16 сентября 2018

Пожалуйста, удалите конфигурацию: spring.thymeleaf.prefix = / resources / templates / По умолчанию это местоположение используется движком Thymeleaf.

UPDATE: Если вы хотите изменить местоположение по умолчанию (в каталоге ресурсов), вы можете использовать: spring.thymeleaf.prefix = путь к классам: / шаблоны /

0 голосов
/ 16 сентября 2018

Поставьте @RequestMapping("/") перед buy функцией:

@RequestMapping("/")
public String buy(Model model) {
    return "home";
} 

Если у вас есть несколько функций в классе, Springboot не будет знать, какая функция будет использоваться для запроса.SpringBoot использование Thymeleaf - шаблон по умолчанию.Вам не нужно конфигурации для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...