2

我正在使用 Velocity 生成 java 代码,但我在模板中遇到了以下行的问题:

return Marshal$sdo.getName().dynamicSize(this);

所需的输出是:

return MarshalSomeClass.dynamicSize(this);

在这种情况下,VLT 仅限于“$sdo.getName()”,但尾随的“.” 导致它不评估 VLT 部分。

当我试图逃避“。” (例如$sdo.getName()\.dynamicSize)我得到以下输出:

return MarshalTestTypesFile\.dynamicSize(this);

我试过分配“。” 到 VLT 变量并用花括号将其包裹起来,然后打印花括号。我已经尝试过{$sdo.getName()}并且遇到了同样的问题。我已经尝试了所有其他的逃跑技巧,但都无济于事。看起来应该很简单,但我很难过。我在这里想念什么?

4

1 回答 1

4

只需使用带有大括号的正式 VTL 表示法:

return Marshal${sdo.getName()}.dynamicSize(this);
于 2012-04-17T17:27:02.727 回答