我正在使用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()}并遇到相同的问题。我尝试了所有其他技巧,以逃避无济于事。似乎应该很简单,但是我很困惑。我在这里想念什么?

最佳答案

只需在括号中使用正式的VTL表示法即可:

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

关于java - Apache Velocity:转义符不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10195919/

10-10 05:49