Freemarker:显示变量/插值的名称,而不是值

时间:2017-08-29 01:54:24

标签: xml variables exec interpolation freemarker

我正在构建一个可以有多种故障状态的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.

提前致谢!

0 个答案:

没有答案