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

如何在FreeMarker中动态访问已赋值的变量?

解决FreeMarker中通过变量名字符串获取对应值的问题

没问题,这个需求在FreeMarker里用内置的.vars对象就能轻松实现,下面是具体的解决方案和说明:

最终可用代码

<#assign U="Unknown" B="both" M="male" F="female">
<div>
  <span> ${.vars[transaction.addressTransactions.addresses.newInfo.GenderTypeCode.code]} </span>
</div>

逻辑说明

.vars是FreeMarker提供的内置对象,它相当于当前模板上下文里所有变量的"映射表"——键是变量的名称(字符串形式),值就是你给变量赋的内容。

举个具体的场景:
如果transaction.addressTransactions.addresses.newInfo.GenderTypeCode.code返回的是U,那.vars[transaction.addressTransactions.addresses.newInfo.GenderTypeCode.code]就等价于直接写${U},会输出Unknown;如果返回的是F,就会输出female,完全匹配你的需求。

快速测试示例

要是你想快速验证这个逻辑,可以用一个简化的模拟变量代替复杂的业务表达式:

<#assign testGenderCode = "M">
<#assign U="Unknown" B="both" M="male" F="female">
<p>测试输出:${.vars[testGenderCode]}</p>

运行这段代码会输出:测试输出:male,能直观看到效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:08:17