1.使用模板继承的基本标签
@extends,@block ,@override.
他们三个都有一个共同的属性: name
@extend标签: 要继承的模板
@block 标签: 声明在一个模板中定义那些代码是可以被重写的(@ovrride)
@override标签: 选择要重写的代码块
2.依赖配置
<!--rapid-framework 模板继承框架--> <dependency> <groupId>com.googlecode.rapid-framework</groupId> <artifactId>rapid-core</artifactId> <version>4.0.5</version> </dependency> <!-- lang包 缺少的话可能会报错 --> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency>
3.Freemarker配置 -> 在yml文件中的配置
spring: freemarker: charset: UTF-8 check-template-location: true template-loader-path: classpath:/templates
4.在java中的配置,通过@Configuration注解创建配置类.(这里不配置,标签则不能使用)
import cn.org.rapid_framework.freemarker.directive.BlockDirective; import cn.org.rapid_framework.freemarker.directive.ExtendsDirective; import cn.org.rapid_framework.freemarker.directive.OverrideDirective; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; @Configuration public class FreemarkerConfig { @Autowired freemarker.template.Configuration configuration; @PostConstruct public void setSharedVariable(){ configuration.setSharedVariable("block", new BlockDirective()); configuration.setSharedVariable("override", new OverrideDirective()); configuration.setSharedVariable("extends", new ExtendsDirective()); } }
5.模板继承
(1)创建父模板layout.ftl
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"/> <title> <@block name="title" >父模板的 title</@block> </title> </head> <body> <div> <h3> <@block name="body" >父模板的 body</@block> </h3> </div> </body> </html>
(2) 创建子模板son.ftl
<@override name="title"> 子模版的 title </@override> <@override name="body"> 子模版的 body </@override> <!--继承的模板要写在最下面--> <@extends name="layout.ftl"/>