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> |