速度模板引擎1.7换行问题

时间:2018-10-19 16:06:04

标签: java templates velocity

我有一个生成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;

如何避免出现新的换行符?

1 个答案:

答案 0 :(得分:0)

最肯定的是sample value字符串中包含$str.value之后的换行符。因此,您可以执行以下操作:

$!str.value.trim()

删除它们。

顺便说一句,如果您想摆脱Velocity指令引入的换行符,则可以使用##结尾该行:

#if($str.how == "value")##