Я установил все зависимости и выполнил инструкции, но шаблон не является страницей, шаблон не загружается и дает мне:
404. Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Я перешел на эту страницу для установки: https://ultraq.github.io/thymeleaf-layout-dialect/Installation.html
Я использую Thymeleaf 3.0.9 (зависимости установлены) и версию 2.3.0 зависимостей thymleaf-dialect.
Если я выну <bean></bean> (находится на странице установки), страница загрузится без шаблона. Это оставшаяся часть файла config-mvc.xml, в котором есть компоненты:
<beans xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc = "http://www.springframework.org/schema/mvc"
xmlns = "http://www.springframework.org/schema/beans"
xsi:schemaLocation = "http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<mvc:annotation-driven/>
<mvc:resources mapping = "/resources/**" location = "/resources/"/>
<!-- **************************************************************** -->
<!-- THYMELEAF-SPECIFIC ARTIFACTS -->
<!-- TemplateResolver <- TemplateEngine <- ViewResolver -->
<!-- **************************************************************** -->
<bean id = "templateResolver"
class = "org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name = "prefix" value = "/WEB-INF/views/" />
<property name = "suffix" value = ".html" />
<property name = "templateMode" value = "HTML5" />
</bean>
<bean id = "templateEngine"
class = "org.thymeleaf.spring4.SpringTemplateEngine">
<property name = "templateResolver" ref = "templateResolver" />
</bean>
<bean class = "org.thymeleaf.spring4.view.ThymeleafViewResolver">
<property name = "templateEngine" ref = "templateEngine" />
</bean>
Я что-то пропустил? Я также использую последнюю версию Spring-framework.
Обновлено:
Контроллер, с которым я пытаюсь связаться:
@Controller
public class HelloController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String hello(Model model) {
int temp = (Math.random() <= 0.5) ? 1 : 2;
if (temp == 1)
{
model.addAttribute("template", "template");
} else
{
model.addAttribute("template", "admintemplate");
}
return "home";
}
}
Мой web.xml:
<web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns = "http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version = "2.5">
<display-name>Hello Spring MVC</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/appconfig-root.xml</param-value>
</context-param>
<bean class = "nz.net.ultraq.thymeleaf.LayoutDialect">
<constructor-arg ref = "groupingStrategy"/>
</bean>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Обновлено: модель, которую я отправляю, содержит данные (видно при отладке). Я даю ему имя шаблона, но оно не помещается между $ {}.
Конфигурация выглядит нормально с фасолью, которую я пропустил? Но разве не странно, что без Thymeleaf страницы загружаются нормально?
home.html находится в папке resources / static /?
Нет, они во «просмотрах». Config-mvc отмечает, что он будет смотреться в views, вот почему. Обновлено: я попытался поместить их в static, но это дает мне тот же результат. Изменить редактировать: они находятся в: ресурсах / представлениях
Я только что удалил все XML-файлы, и он работает так же, как и (стандартный синтаксис URL-адреса thymleaf не работает). По какой-то причине, вероятно, из-за зависимостей, Thymeleaf не преобразует текст в имена. layout:decorate = "~{$template.html} не работает.




Кажется, ваша конфигурация в порядке. Либо путь к вашему статическому контенту (страницам) не настроен в соответствии со спецификацией mvc, опубликованной здесь, либо ваши контроллеры не настроены или не зарегистрированы правильно. Не могли бы вы также опубликовать код контроллера, который не разрешен правильно?