Не могу использовать фрагменты на Thymeleaf в Spring 4 + MVC - PullRequest
0 голосов
/ 01 сентября 2018

Хорошо бы сказать, что я изучаю Spring MVC, и недавно я пытаюсь создать шаблон, который я могу повторно использовать для своих представлений. Для реализации Thymeleaf 3.0.9 в моем приложении Spring 4.2.0 я использовал это руководство: https://www.logicbig.com/tutorials/spring-framework/spring-web-mvc/thymeleaf-views.html

После выполнения того, что говорится в руководстве, я могу отправлять атрибуты и показывать их в виде, но во время использования fragments он просто не будет анализировать th attribute в теге html.

Вот зависимости, от которых я звоню pom.xml

    <!-- Thymeleaf -->
    <dependency>
       <groupId>org.thymeleaf</groupId>
       <artifactId>thymeleaf</artifactId>
       <version>3.0.7.RELEASE</version>
    </dependency>
    <dependency>
       <groupId>org.thymeleaf</groupId>
       <artifactId>thymeleaf-spring4</artifactId>
       <version>3.0.7.RELEASE</version>
    </dependency>

Здесь я настраиваю распознаватель MyWebConfig.java

        @EnableWebMvc
@Configuration
@ComponentScan
public class MyWebConfig {

  @Autowired
  ApplicationContext applicationContext;

  @Bean
  public SpringTemplateEngine templateEngine(){
      SpringTemplateEngine templateEngine = new SpringTemplateEngine();
      templateEngine.setTemplateResolver(templateResolver());
      return templateEngine;
  }

  @Bean
  public SpringResourceTemplateResolver templateResolver(){
      SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
      templateResolver.setApplicationContext(this.applicationContext);
      templateResolver.setPrefix("/WEB-INF/views/template/");
      templateResolver.setSuffix(".html");
      templateResolver.setTemplateMode("HTML5");
      return templateResolver;
  }

  @Bean
  public ViewResolver viewResolver(){
      ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
      viewResolver.setTemplateEngine(templateEngine());
      return viewResolver;
  }
}

Вот мои взгляды Структура каталогов :

Directory Structure

Вот мой layout.html (тестов много, ни один не работает)

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"  xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head th:include="template/header.html::header"></head>
<body>

 <h3>Hello<span th:text="${message}"></span></h3>
  <p th:insert="/template/footer.html::footer"></p>
 <p th:insert="base::footer"></p>
 <p th:include="/template/footer.html::footer"></p>
 <p th:include="base::footer"></p>
  <p th:replace="/template/footer.html::footer"></p>
 <p th:replace="base::footer"></p>

</html>

Вот мой footer.html

<p th:fragment="footer">This is the footer</p>

Вот мой header.html

<head th:fragment="header">
    <meta charset="ISO-8859-1">
    <title>Header</title>
</head>

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    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
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->

    <mvc:annotation-driven />
    <mvc:default-servlet-handler />

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/template/" />
        <property name="suffix" value=".html" />
    </bean>

    <context:component-scan base-package="com.andrex" />



</beans>

А вот и результат:

enter image description here

Может кто-нибудь, пожалуйста, наставить меня?

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