在Freemarker中使用时,如果我只是引用变量,则可以使用,但是在使用?eval时,我得到的是null或丢失的错误。
这有效并且newOwnerName获取输入值<#assign newOwnerName = jsonEventData.newOwnerName>
但这不起作用,并导致异常:<#assign newOwnerName = jsonEventData.newOwnerName?eval>
例外:The following has evaluated to null or missing: jsonEventData.newOwnerName?eval
我尝试使用?eval的原因是因为输出中包含引号:新的所有者名称为“ Peter”。但我希望它不要使用引号:新的所有者名称是Peter
FTL模板类似于:
<#assign newOwnerName = jsonEventData.newOwnerName>
The new owner name is ${newOwnerName}
我希望?eval不会导致null或丢失错误,因为值是在输入中发送的
最佳答案
您不能?eval
字符串值,而在其内容中不能包含引号。 Peter
不是Freemarker变量。如果您的Java输入偶尔有引号或没有引号,则会出现此错误。一个更干净的解决方案是在Java端检测并删除引号(子字符串)。