我正在构建一个可以有多种故障状态的XML触发项目,因此我尝试以不需要针对每种类型的故障的方式构建这些项目。不幸的是,由于客户端的要求,我只能使用Freemarker来生成这些结果(具体来说,这是在Freemarker的Oracle实现上,它包含一个内置的?exec,可以在附带的字符串中执行任何操作)
在每种情况下都有很多变量可能会失败,因此我希望我能找到一种方法来打印失败变量的名称,而不是为每种情况手动重复该消息。这使用户能够快速解决XML有效负载问题(或者如果其他地方存在问题)。
示例:
<#assign errorMsg = r"There was a problem displaying ${thisVarName}.">
${var1!errorMsg?exec}
${var2!errorMsg?exec}
${var3!errorMsg?exec}
失败时的输出将是:
There was a problem displaying var1.
There was a problem displaying var2.
There was a problem displaying var3.
或者在只有var2失败的情况下,输出将是:
The value of var1.
There was a problem displaying var2.
The value of var3.
提前致谢!