zoukankan      html  css  js  c++  java
  • 解决thymeleaf layout布局不生效

    今天使用thymeleaf layout布局时总是不生效,特此把解决问题的步骤和几个关键点记录下来备忘。
    一、检查依赖
    1.thymeleaf必备maven依赖:
    <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf</artifactId>
        <version>${thymeleaf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf-spring4</artifactId>
        <version>${thymeleaf.version}</version>
    </dependency>
    

       

    2.如果使用layout布局,还需要添加:
    <dependency>
        <groupId>nz.net.ultraq.thymeleaf</groupId>
        <artifactId>thymeleaf-layout-dialect</artifactId>
        <version>2.2.2</version>
    </dependency>
    

      

    二、配置视图引擎
    1.配置thymeleaf作为视图引擎
     
    <!-- Thymeleaf View Resolver - implementation of Spring's ViewResolver interface -->
    <bean id="viewResolver" class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
        <property name="templateEngine" ref="templateEngine" />
        <property name="characterEncoding" value="UTF-8" />
    </bean>
     
    <!-- Thymeleaf Template Engine (Spring4-specific version) -->
    <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
        <property name="templateResolvers">
            <set>
                <ref bean="templateResolver" />
            </set>
        </property>
    </bean>
     
    <!-- Thymeleaf Template Resolver -->
    <bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
        <property name="prefix" value="/WEB-INF/templates/" />
        <property name="templateMode" value="HTML" />
        <property name="suffix" value=".html"></property>
        <property name="characterEncoding" value="UTF-8"></property>
    </bean>
    

      

    2.使用layout还需要在templateEngine添加如下节点:
    <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
        ……
        <property name="additionalDialects">
            <set>
                <bean class="nz.net.ultraq.thymeleaf.LayoutDialect"/>
            </set>
        </property>
    </bean>
    

       

    三、页面

    task/layout.html

    <!DOCTYPE html>
    <html lang="en" xmlns:layout="http://www.thymeleaf.org">
    <head>
        <meta charset="utf-8">
        <title>mysite</title>
    </head>
    <body>
    <div class="container">
        <div class="row">
            <div class="span3" th:insert="fragments/menu::menu"></div>
            <div class="span9" layout:fragment="content"></div>
        </div>
    </div>
    </body>
    </html>

    index.html

    <!DOCTYPE html>
    <html lang="en" layout:decorator="task/layout">
    <head>
        <meta charset="utf-8">
        <title>index</title>
    </head>
    <body>
    <div layout:fragment="content">
            <h1>
                Welcome!
            </h1>    
    </div>
    </body>
    </html>
     
    三、版本号
    如果检查了以上几项还是没问题,最后还有一点值得注意的,就是thymeleaf和thymeleaf-layout-dialect的版本。
    我最后就是调整了maven依赖的版本号,终于成功了。
     
     
  • 相关阅读:
    tornado源码分析-多进程
    create a cocos2d-x-3.0 project in Xcode
    记录自己的傻逼的错误:找不到或无法载入主类
    MVC5 Entity Framework学习之实现主要的CRUD功能
    Linux中实现多网卡绑定总结
    it码农之心灵鸡汤(一)
    【高级算法】遗传算法解决3SAT问题(C++实现)
    MySQL-分区表-1
    OpenSift源代码编译过程记录
    Android Studio 视图解析
  • 原文地址:https://www.cnblogs.com/janes/p/7524941.html
Copyright © 2011-2022 走看看