You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Freemarker基础模板识别子模板设置的变量?

解决Freemarker子模板无法控制父模板页眉显示的问题

问题根源

你当前的代码顺序是先include基础模板,再定义header变量。Freemarker是自上而下逐行执行的,当加载base.ftlh时,header变量还没被赋值,所以会使用默认的true,后续设置的header=false根本不会影响已经执行过的判断逻辑。

修复方案

调整子模板的代码顺序,先定义header变量,再引入基础模板,确保基础模板执行时能读取到你设置的变量值。

修改后的profile.ftlh代码:

<#assign header = false>

<#include  "/base.ftlh">

<#macro page_title>
    Profil-Suche
</#macro>

<#macro page_body>
    ...
</#macro>

验证基础模板逻辑

你的base.ftlh中header!true的写法是正确的(!表示如果变量不存在则使用默认值true),现在变量在include前定义,基础模板就能正确读取到header=false,从而隐藏页眉。

内容的提问来源于stack exchange,提问作者monamona

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 15:38:32