2016-12-17 11 views
0

Приложение работает, но у меня проблема с плиткой. Мое приложение не хочет отображать страницу с использованием макета, а только простую страницу (в каталоге «content»). Я думаю, что это что-то не так в файле плитки. У меня нет никаких ошибок.
Я уверен, что путь к файлу плитки правильный (если я перейду на другой, это будет файл ошибок, который не существует).Плитки не используют компоновку

Screenshot

Часть MVC Config:

@Bean(name = "templateResolver") 
    public SpringResourceTemplateResolver createTemplateResolver() { 
     SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); 
     templateResolver.setPrefix("/WEB-INF/views/"); 
     templateResolver.setSuffix(".html"); 
     templateResolver.setTemplateMode("HTML5"); 
     templateResolver.setCacheable(false); 
     return templateResolver; 
    } 


@Bean(name = "templateEngine") 
public SpringTemplateEngine createTemplateEngine(SpringResourceTemplateResolver springResolver) { 
    SpringTemplateEngine templateEngine = new SpringTemplateEngine(); 
    templateEngine.addTemplateResolver(springResolver); 
    templateEngine.addDialect(new SpringSecurityDialect()); 
    templateEngine.addDialect(new TilesDialect()); 
    templateEngine.setMessageSource(messageSource()); 
    return templateEngine; 
} 

@Bean 
public ViewResolver createTilesViewResolver(SpringTemplateEngine templateEngine) { 
    ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); 
    viewResolver.setTemplateEngine(templateEngine); 
    viewResolver.setViewClass(ThymeleafTilesView.class); 
    viewResolver.setCache(false); 
    viewResolver.setCharacterEncoding("UTF-8"); 
    viewResolver.setOrder(Ordered.LOWEST_PRECEDENCE); 
    return viewResolver; 
} 

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/").setCachePeriod(cachePeriod); 
    registry.setOrder(Ordered.HIGHEST_PRECEDENCE); 
} 

плитки XML:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE tiles-definitions PUBLIC 
      "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" 
      "http://tiles.apache.org/dtds/tiles-config_2_1.dtd"> 

<tiles-definitions> 

    <definition name="baseLayout" template="/template/layout"> 
     <put-attribute name="header" value="/template/fragments/header" /> 
     <put-attribute name="nav" value="/template/fragments/nav" /> 
     <put-attribute name="footer" value="/template/fragments/footer" /> 
    </definition> 

    <definition name="*" extends="baseLayout"> 
     <put-attribute name="title" value="pageTitle/{1}" /> 
     <put-attribute name="content" value="pageContent/{1}" /> 
    </definition> 

    <definition name="*/*" extends="baseLayout"> 
     <put-attribute name="title" value="pageTitle/{1}/{2}" /> 
     <put-attribute name="content" value="pageContent/{1}/{2}" /> 
    </definition> 

    <definition name="content/*/*" extends="baseLayout"> 
     <put-attribute name="title" value="pageTitle/{1}/{2}" /> 
     <put-attribute name="content" value="pageContent/{1}/{2}" /> 
    </definition> 

    <definition name="content/*/*/*" extends="baseLayout"> 
     <put-attribute name="title" value="pageTitle/content/{1}/{2}/{3}" /> 
     <put-attribute name="content" value="pageContent/content/{1}/{2}/{3}" /> 
    </definition> 

    <definition name="content/*/*/*/*" extends="baseLayout"> 
     <put-attribute name="title" value="pageTitle/content/{1}/{2}/{3}/{4}" /> 
     <put-attribute name="content" value="pageContent/content/{1}/{2}/{3}/{4}" /> 
    </definition> 

    <definition name="pageContent/*" template="{1} :: content" /> 
    <definition name="pageTitle/*" template="{1} :: title" /> 

    <definition name="pageContent/*/*" template="{1}/{2} :: content" /> 
    <definition name="pageTitle/*/*" template="{1}/{2} :: title" /> 

    <definition name="pageContent/*/*/*" template="{1}/{2}/{3} :: content" /> 
    <definition name="pageTitle/*/*/*" template="{1}/{2}/{3} :: title" /> 

    <definition name="pageContent/*/*/*/*" template="{1}/{2}/{3}/{4} :: content" /> 
    <definition name="pageTitle/*/*/*/*" template="{1}/{2}/{3}/{4} :: title" /> 

    <definition name="pageContent/*/*/*/*/*" template="{1}/{2}/{3}/{4}/{5} :: content" /> 
    <definition name="pageTitle/*/*/*/*/*" template="{1}/{2}/{3}/{4}/{5} :: title" /> 

</tiles-definitions> 

Часть pom.xml

<properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 

     <spring-security-version>4.1.0.RELEASE</spring-security-version> 
     <thymeleaf-version>2.1.5.RELEASE</thymeleaf-version> 
     <thymeleaf-springsecurity3>2.1.5.RELEASE</thymeleaf-springsecurity3> 
     <thymeleaf-springsecurity4>2.1.3.RELEASE</thymeleaf-springsecurity4> 
     <thymeleaf-java8time-version>3.0.0.RELEASE</thymeleaf-java8time-version> 
     <thymeleaf-extras-tiles-version>2.1.1.RELEASE</thymeleaf-extras-tiles-version> 
    </properties> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.8.RELEASE</version> 
    </parent> 

    <dependencies> 

     <!-- Java --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version><!--$NO-MVN-MAN-VER$ --> 
     </dependency> 



     <!-- Spring Boot --> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 



     <!-- Spring security --> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-core</artifactId> 
      <version>${spring-security-version}</version><!--$NO-MVN-MAN-VER$ --> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-web</artifactId> 
      <version>${spring-security-version}</version><!--$NO-MVN-MAN-VER$ --> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-config</artifactId> 
      <version>${spring-security-version}</version><!--$NO-MVN-MAN-VER$ --> 
     </dependency> 



     <!-- Thymeleaf --> 
     <dependency> 
      <groupId>org.thymeleaf</groupId> 
      <artifactId>thymeleaf</artifactId> 
      <version>${thymeleaf-version}</version><!--$NO-MVN-MAN-VER$ --> 
     </dependency> 

     <dependency> 
      <groupId>org.thymeleaf</groupId> 
      <artifactId>thymeleaf-spring3</artifactId> 
      <version>${thymeleaf-version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.thymeleaf</groupId> 
      <artifactId>thymeleaf-spring4</artifactId> 
      <version>${thymeleaf-version}</version><!--$NO-MVN-MAN-VER$--> 
     </dependency> 



     <!-- Thymeleaf extras --> 
     <dependency> 
      <groupId>org.thymeleaf.extras</groupId> 
      <artifactId>thymeleaf-extras-springsecurity3</artifactId> 
      <version>${thymeleaf-springsecurity4}</version><!--$NO-MVN-MAN-VER$--> 
     </dependency> 

     <dependency> 
      <groupId>org.thymeleaf.extras</groupId> 
      <artifactId>thymeleaf-extras-springsecurity4</artifactId> 
      <version>${thymeleaf-springsecurity4}</version><!--$NO-MVN-MAN-VER$--> 
     </dependency> 

     <dependency> 
      <groupId>org.thymeleaf.extras</groupId> 
      <artifactId>thymeleaf-extras-java8time</artifactId> 
      <version>${thymeleaf-java8time-version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.thymeleaf.extras</groupId> 
      <artifactId>thymeleaf-extras-tiles2</artifactId> 
      <version>${thymeleaf-extras-tiles-version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.thymeleaf.extras</groupId> 
      <artifactId>thymeleaf-extras-tiles2-spring3</artifactId> 
      <version>${thymeleaf-extras-tiles-version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.thymeleaf.extras</groupId> 
      <artifactId>thymeleaf-extras-tiles2-spring4</artifactId> 
      <version>${thymeleaf-extras-tiles-version}</version> 
     </dependency> 

     <!-- Guava --> 
     <dependency> 
      <groupId>com.google.guava</groupId> 
      <artifactId>guava</artifactId> 
      <version>19.0</version> 
     </dependency> 



     <!-- Spring JPA --> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-jpa</artifactId> 
      <version>1.10.1.RELEASE</version><!--$NO-MVN-MAN-VER$ --> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-commons</artifactId> 
      <version>1.12.2.RELEASE</version><!--$NO-MVN-MAN-VER$ --> 
     </dependency> 

     <!-- MySQL --> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.9</version><!--$NO-MVN-MAN-VER$ --> 
     </dependency> 

     <!-- Hibernate framework --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>5.1.0.Final</version><!--$NO-MVN-MAN-VER$--> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.1-api</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>5.1.0.Final</version><!--$NO-MVN-MAN-VER$--> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-annotations</artifactId> 
      <version>3.5.6-Final</version> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>5.3.3.Final</version><!--$NO-MVN-MAN-VER$--> 
     </dependency> 

     <!-- Apache tiles --> 
     <dependency> 
      <groupId>org.apache.tiles</groupId> 
      <artifactId>tiles-core</artifactId> 
      <version>2.2.2</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.tiles</groupId> 
      <artifactId>tiles-servlet</artifactId> 
      <version>2.2.2</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.tiles</groupId> 
      <artifactId>tiles-template</artifactId> 
      <version>2.2.2</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.tiles</groupId> 
      <artifactId>tiles-jsp</artifactId> 
      <version>2.2.2</version> 
     </dependency> 


     <!-- INNE --> 
     <dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-access</artifactId> 
     </dependency> 

     <!-- <dependency> 
      <groupId>nz.net.ultraq.thymeleaf</groupId> 
      <artifactId>thymeleaf-layout-dialect</artifactId> 
      <version>2.1.2</version> 
     </dependency> --> 
    </dependencies> 

Что я делаю неправильно?

Благодарим за ответы! Имейте славный день! :)

+0

Вашего IDE показывает, что вы используете много устаревших методы. Просто предупреждение. – Lexi

+0

Да, я знаю, но это не проблема. – Jacek

ответ

-1

Папка шаблона выглядит так, как будто она находится под видами. Вы должны определить Tiles.xml с правильным путем, который был бы

/views/template/layout

+0

я изменился на: <имя определения = "baseLayout" шаблон = "/ вид/шаблон/макет"> \t \t <пут-атрибут имя = значение "заголовок" = "/ вид/шаблон/фрагменты/заголовок" /> \t \t \t \t \t И еще ничего. – Jacek