java - Wie erreicht Freemarker diesen einfachen Effekt?
我想大声告诉你
我想大声告诉你 2017-05-27 17:41:00
0
2
627

Vorlage

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

Seitenaufruf

<#include "/layout/master.ftl" />
<@script>var a=1;</@script>

In der dadurch generierten Seite erscheinen die Wörter dahinter var a=1;跑到了</html>, also am Ende der Vorlage, nicht an der entsprechenden Position der Vorlage.

Ich mache das schon seit mehreren Jahren.net,感觉这种模板要出我的效果应该是理所当然的。
但是在java und es scheint, dass es nicht einfach ist, die erwarteten Ergebnisse zu erzielen?

我想大声告诉你
我想大声告诉你

Antworte allen(2)
阿神

freemarker不是基于layout的,它只是做表达式求值和文本替换,是不能满足你的要求的。

据我所知:

  1. Struts配合Tiles插件可以达到你要的layout效果。

  2. Thymeleaf配合thymeleaf-layout-dialect也可以达到你要的效果。

我想大声告诉你

宏的用法不对,可以参考下面

<!-- 定义宏用 <#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"/>
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage