Подтвердить что ты не робот

SpringMVC + Thymeleaf, сообщение об ошибке: шаблон может не существовать или может быть недоступен ни одним из настроенных шаблонов Resolvers

Я прочитал другие ответы, но неважно, спасибо

Spring:             

<bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine">
    <property name="templateResolver" ref="templateResolver" />
</bean>

<bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
    <property name="templateEngine" ref="templateEngine" />
    <property name="order" value="1" />
</bean>

pom.xml:

<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>2.0.13</version>
</dependency>
<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring3</artifactId>
    <version>2.0.13</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
    </exclusions>
    <scope>compile</scope>
</dependency>

org.thymeleaf.exceptions.TemplateInputException: шаблон разрешения ошибки "login.html", шаблон может не существовать или может быть недоступен ни одним из настроенных шаблонов Resolvers

4b9b3361

Ответ 1

Вам нужен шаблонный преобразователь?

Попробуйте что-то вроде этого:

<bean id="templateResolver"
      class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
    <property name="prefix" value="/WEB-INF/" />
    <property name="templateMode" value="HTML5" />
 </bean>

Убедитесь, что /path/after/web -inf/login.html возвращается контроллером MVC Spring.

Ответ 2

Вероятно, вам не хватает свойства "suffix" в конфигурации templateResolver. Лучше всего использовать как префикс пути (где находится файл), так и "суффикс" (расширение файла - в противном случае thymeleaf пытается разрешить только "логин" без расширения) в конфигурации шаблона-резольвера, Например:

    <beans:bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".html" />
        <beans:property name="templateMode" value="HTML5" />
        <beans:property name="cacheable" value="false" /> <!-- Development only -->
    </beans:bean>

И запрос на просмотр входа в контроллер не включает расширение файла.

@RequestMapping(value = "/login")
public String login(HttpSession session) {
    // do stuff

    // Thymeleaf (delegated by springmvc) will request the "login" view at which 
    // point the prefix and suffix are added to resolve the template location. 
    return "login"; 
}

Итак, основываясь на этой конфигурации и в рамках проекта на основе maven, login.html должен располагаться в

${project_home}/src/main/webapp/WEB-INF/views/login.html

Ответ 3

Возможно, удалите слэш "/" в отображении запроса контроллера.

@RequestMapping(value = "login")