freemarker有很好的继承机制,大体用法如下:
| 1 | | | 
父级文件 layout.ftl
| 1 | <#marko page pageName="index" clazzName="t-center-bg1"> | 
子级文件
- 无孙子文件 - changeClazz.ftl- 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11- <#import "./layout.ftl" as temp /> 
 <!-- import 父文件layout.ftl -->
 @temp.page pageName='changeClazz' clazzName='t-center-bg2'>
 <!-- 设置layout的pageName 和 clazzName -->
 <div class="left"></div>
 <div class="center"></div>
 <div class="right"></div>
 </@temp.page>
- 有孙子文件 - module.ftl- 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23- <#import "./layout.ftl" as temp /> 
 <!-- import 父文件 -->
 <#marko center currentPage="index">
 <!-- 此处暴露currentPage,可在子级中设置 -->
 @temp.page pageName='center' clazzName='t-center-bg3'>
 <!-- 设置layout的pageName 和 clazzName -->
 <div class="left"></div>
 <div class="center" data-currentpage="${currentPage!''}">
 <div class="top"></div>
 
 <#nested /> # 此处暴露接口
 <div class="bototm"></div>
 </div>
 <div class="right"></div>
 </@temp.page>
 </#macro>
孙子文件center.ftl
| 1 | <#import "module.ftl" as module> |