我正在使用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()}
并遇到同样的问题。我已经尝试了所有其他技巧逃脱无济于事。看起来它应该很简单,但我很难过。我在这里缺少什么?
答案 0 :(得分:4)
只需使用带括号的正式VTL表示法:
return Marshal${sdo.getName()}.dynamicSize(this);