html-email - 如何为freemarker中的嵌套对象赋值
问题描述
这可能很简单,但我在互联网上找不到。我在freemarker中有嵌套对象,如下所示,它有多个键我无法为多个键分配值我只能为一个键分配值
<#assign modifiedObjectChng = {
"beforeDep": {
"range": [],
"newTravelDate": "",
"reissueAllowed": false,
"changeAllowed": false,
"maxPenality": ""
},
"afterDep": {
"range": [],
"newTravelDate": "",
"reissueAllowed": false,
"changeAllowed": false,
"maxPenality": ""
}
}>
<#assign modifiedObjectChng = modifiedObjectChng + { "beforeDep" : {"newTravelDate" : "AAA" }}>
<#assign modifiedObjectChng = modifiedObjectChng + { "beforeDep" : {"reissueAllowed" : "BBB" }}>
${modifiedObjectChng.beforeDep.newTravelDate} //Output : error following has evaluated to null
${modifiedObjectChng.beforeDep.reissueAllowed} // gives correct result
我的问题是我将如何为多个键赋值,我只能用一个键来做
提前致谢
解决方案
你可以这样做:
<#assign modifiedObjectChng = modifiedObjectChng + { "beforeDep" : modifiedObjectChng.beforeDep + {"newTravelDate" : "AAA" }}>
<#assign modifiedObjectChng = modifiedObjectChng + { "beforeDep" : modifiedObjectChng.beforeDep + {"reissueAllowed" : "BBB" }}>
不是很好,但 FreeMarker 不支持修改传递给模板的对象。如果公开 setter 方法会更方便(请参阅 参考资料?api
),但一般来说,如果模板修改对象会很奇怪。
推荐阅读
- amazon-web-services - Elastic Beanstalk 部署在 AppDeployPreHook/12_update_permissions.sh 失败
- rust - 我可以以某种方式修改“&”数组吗?
- excel - ruby/caxlsx:如何定义不同的周围单元格的边框样式?
- ios - SwiftUI 预览不适用于自定义库
- visual-studio - 在 .Net Core 5 Web API 中将连接字符串更改为 MySql 数据库并在 VS Debug 模式下运行,直到第二次 API 重新启动后才会生效
- macos - 在旧 Mac 上升级到最新版本的 Cmake?
- swagger - springdoc-openapi-ui 无法识别输入参数
- laravel - Laravel - Concatenate 和 COALESCE 的组合失败
- python - 我正在尝试使用 Python 编程为所有商品抓取一个大型超市网站。我坚持使用 json.loads() 命令。这是我的代码
- django - Django 多表继承子类的空查询集