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
Ответы
Ответ 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")