我创建了一个类来实现模板方法模型Ex来自 FreeMarker。假装exec()函数返回一个字符串:“你好${用户名}”
我将该类分配给数据模型中的一个方法:
dataModel.put("myMethod", myClassInstance);
dataModel.put("username", "John Doe");
我的 HTML 模板如下所示:
<p>${myMethod()}</p>
这意味着处理模板时会生成以下输出:
<p>Hello ${username}</p>
由于实际上有一个username我的数据模型中的值,我宁愿希望输出为:
<p>Hello John Doe</p>
我如何告诉 FreeMarker 解析结果我的方法()?我都尝试过?eval and ?解释两者都未能实现我想要的。 FreeMarker 可以做到这一点吗?
你需要删除${}
从要使用的字符串?eval
。返回username
作为方法中的字符串并使用?eval
或从中获取变量.vars
.
<p>${classInstance.myMethod()?eval}</p>
or
<p>${.vars[classInstance.myMethod()]}</p>
如果您不仅想从方法返回变量名,还想返回带有表达式的字符串(例如“Hello ${username}”),则使用?interpret
.
<#assign inlineTemplate = classInstance.myMethod()?interpret>
<@inlineTemplate />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)