java - freemarker如何实现这种贼简单的效果
问题描述
模板
<!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上,貌似要实现我预料中的效果,不容易?
问题解答
回答1:freemarker不是基于layout的,它只是做表达式求值和文本替换,是不能满足你的要求的。
据我所知:
Struts配合Tiles插件可以达到你要的layout效果。
Thymeleaf配合thymeleaf-layout-dialect也可以达到你要的效果。
回答2:宏的用法不对,可以参考下面
<!-- 定义宏用 <#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/>
相关文章:
1. html - 关于css选择器的问题2. android 为什么自定义的view不能显示LayoutInflator.inflate方法加载的布局,3. mongodb - weblogic部署失败,一直不断出现如下报错4. java - 前后端分离怎么解决后端数据太多的问题?5. macos - mac 重启后 XAMPP下的apache无法启动6. java - bin目录有什么特殊含义吗?为什么可执行文件都放在bin目录?7. java-ee - JAVA8 lambdas表达式 改变外面变量的值8. javascript - ant design 菜单从接口里面获取 怎么写?现在都是写死的9. Javascript-JSON.parse:数据意外结束-使用有效JSON时出错。我究竟做错了什么?10. css - html表格 td 宽度随着固定为内容宽度

网公网安备