模板
<!DOCTYPE html>
<html>
<head>
<#include "baseHeader.html" />
<#macro head ><#nested></#macro>
<#macro style ><#nested></#macro>
</head>
<body>
<#macro content >
<#nested>
</#macro>
</body>
<#macro script >
<#nested>
</#macro>
</html>
页面调用
<#include "/layout/master.ftl" />
<@script>var a=1;</@script>
结果生成的页面,这句var a=1;
跑到了</html>
后面,也就是模板的最后面,并没有出现在模板对应的位置。
本人搞了几年.net
,感觉这种模板要出我的效果应该是理所当然的。
但是在java
上,貌似要实现我预料中的效果,不容易?
阿神2017-05-27 17:43:00
freemarker不是基于layout的,它只是做表达式求值和文本替换,是不能满足你的要求的。
据我所知:
Struts配合Tiles插件可以达到你要的layout效果。
Thymeleaf配合thymeleaf-layout-dialect也可以达到你要的效果。
我想大声告诉你2017-05-27 17:43:00
宏的用法不对,可以参考下面
<!-- 定义宏用 <#macro macroName parameterList> -->
<#macro list title items>
<p>${title?cap_first}:
<ul>
<#list items as item>
<li>${item}
</#list>
</ul>
</#macro>
<!-- 调用宏用 <@macroName arguments> -->
<@list items=animals title="animals"/>