gpt4 book ai didi

freemarker - 我的 FreeMarker 方法返回一个带有 ${variable} 的字符串——如何强制 FreeMarker 解析它?

转载 作者:行者123 更新时间:2023-12-03 10:02:29 29 4
gpt4 key购买 nike

我创建了一个从 FreeMarker 实现 TemplateMethodModelEx 的类。假装 exec() 函数返回一个字符串: “你好 ${username}”

我将类分配给数据模型中的一个方法:

dataModel.put("myMethod", myClassInstance);
dataModel.put("username", "John Doe");

我的 HTML 模板如下所示:
<p>${myMethod()}</p>

这意味着在处理模板时会生成以下输出:
<p>Hello ${username}</p>

由于实际上有一个 用户名 我的数据模型中的值,我希望输出为:
<p>Hello John Doe</p>

我如何告诉 FreeMarker 解析 myMethod() 的结果?我都试过了 ? 评估 ?解释并且都无法完成我想要的。这可以用 FreeMarker 实现吗?

最佳答案

您需要删除 ${}从字符串使用 ?eval .返回 username作为您方法中的字符串并使用 ?eval或从 .vars 获取变量.

<p>${classInstance.myMethod()?eval}</p>

或者
<p>${.vars[classInstance.myMethod()]}</p>

如果您想从方法中返回的不仅是变量名,而且是带有表达式的字符串(例如“Hello ${username}”),请使用 ?interpret .
<#assign inlineTemplate = classInstance.myMethod()?interpret>
<@inlineTemplate />

关于freemarker - 我的 FreeMarker 方法返回一个带有 ${variable} 的字符串——如何强制 FreeMarker 解析它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25545966/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com