java - freemarker如何實(shí)現(xiàn)這種賊簡(jiǎn)單的效果
問(wèn)題描述
模板
<!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>
頁(yè)面調(diào)用
<#include '/layout/master.ftl' /><@script>var a=1;</@script>
結(jié)果生成的頁(yè)面,這句var a=1;跑到了</html>后面,也就是模板的最后面,并沒(méi)有出現(xiàn)在模板對(duì)應(yīng)的位置。
本人搞了幾年.net,感覺(jué)這種模板要出我的效果應(yīng)該是理所當(dāng)然的。但是在java上,貌似要實(shí)現(xiàn)我預(yù)料中的效果,不容易?
問(wèn)題解答
回答1:freemarker不是基于layout的,它只是做表達(dá)式求值和文本替換,是不能滿足你的要求的。
據(jù)我所知:
Struts配合Tiles插件可以達(dá)到你要的layout效果。
Thymeleaf配合thymeleaf-layout-dialect也可以達(dá)到你要的效果。
回答2:宏的用法不對(duì),可以參考下面
<!-- 定義宏用 <#macro macroName parameterList> --><#macro list title items> <p>${title?cap_first}: <ul><#list items as item><li>${item}</#list> </ul></#macro><!-- 調(diào)用宏用 <@macroName arguments> --><@list items=animals/>
相關(guān)文章:
1. 數(shù)組按鍵值封裝!2. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問(wèn)題3. docker不顯示端口映射呢?4. python - flask _sqlalchemy 能否用中文作為索引條件5. java - 阿里的開(kāi)發(fā)手冊(cè)中為什么禁用map來(lái)作為查詢的接受類?6. python3.x - git bash如何運(yùn)行.bat文件?7. javascript - ES6規(guī)范下 repeat 函數(shù)報(bào)錯(cuò) Invalid count value8. html5 - 使用echarts中的圖表 一個(gè)頁(yè)面導(dǎo)入了好幾個(gè)js圖表 實(shí)現(xiàn)echarts圖表隨著瀏覽器窗口變化而變化時(shí)出現(xiàn)了問(wèn)題9. javascript - webpack中alias配置中的“@”是什么意思?10. javascript - 為什么創(chuàng)建多行多列的表格最后只有一行內(nèi)有表格
