Heim  >  Fragen und Antworten  >  Hauptteil

java - Wie erreicht Freemarker diesen einfachen Effekt?

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?

我想大声告诉你我想大声告诉你2702 Tage vor590

Antworte allen(2)Ich werde antworten

  • 阿神

    阿神2017-05-27 17:43:00

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

    据我所知:

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

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

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你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"/>

    Antwort
    0
  • StornierenAntwort