我有一个生成Java类的速度模板,并且它被新的换行符所吞噬,并且并非总是如此。
我的模板如下所示,
#foreach( $str in $elm.mylist )
#if($selected == $str.how)
#if($str.how == "value")
//some comment
#end
#if($str.how == "value")
//some comment
#end
#if($str.how == "value")
#if($foreach.index == 0 || $foreach.index == 1)
@CustomAnnotation(value = "$!str.value")
#else
//@CustomAnnotation(value = "$!str.value")
#end
#else
@CustomAnnotation(value = "$!str.value")
#end
#end
#end
生成的Java文件如下所示,
//some comment
//@CustomAnnotation(value = "sample value
")
//@CustomAnnotation(value = "no value found")
//@CustomAnnotation(value = "change this")
@CustomAnnotation(value = "no value found")
public MyClass varibleName;
//some comment
//@CustomAnnotation(value = "sample value
")
//@CustomAnnotation(value = "no value found")
//@CustomAnnotation(value = "change this")
@CustomAnnotation(value = "no value found")
public MyClass varibleName_1;
如何避免出现新的换行符?
答案 0 :(得分:0)
最肯定的是sample value
字符串中包含$str.value
之后的换行符。因此,您可以执行以下操作:
$!str.value.trim()
删除它们。
顺便说一句,如果您想摆脱Velocity指令引入的换行符,则可以使用##
结尾该行:
#if($str.how == "value")##