速度模板 – 新线

我一直在使用Apache的Velocity引擎和自定义模板。
问题是,我无法生成具有相应换行符的String。 我几乎尝试了所有我发现的东西,例如使用$ esc.n和$ esc.newline(我已经在我的项目中使用了逃生工具)但似乎我目前使用的版本不支持它(1.4 ),检查是否可以使用’\ n’,’\\ n’甚至’\\\ n’,但同样的事情。

有没有人对此有任何解决方案?

我们遇到了换行问题,最后在VelocityContext上放了一个属性:

VelocityContext ctx = new VelocityContext(); ctx.put("newline", "\n"); 

然后,无论我们需要使用换行符,我们都会引用上下文变量:

 $newline 

我们在需要用
替换字符串中的换行符的情况下使用它。

我需要一个用于生成javascript的新行。 好吧,我当然不需要它,但它使得在开发时更容易阅读生成的代码。 在这种情况下,我只是设置一个变量,以便Velocity更容易阅读。 这就是你所需要的:

速度代码:

 #set( $newline=" ") #set( $jsCode = "var bling='blang';{$newline}var bark='bite';{$newline}" )  

结果:

  

您是否使用Velocity生成HTML内容? 在这种情况下,请记住您需要使用
而不是换行符。

如果你真的想要一个新的行字符,你只需要输入实际的新行字符,即按Enter键。 在Velocity中没有像\ n那样的转义序列。

如果您使用的是Velocity 1.5或更高版本,您也可以将新行放在那里:

 #set( $foo = "this has a line break" ) 

简单地使用Velocity EscapeTool可能是最简单的。

请看以下链接: https : //velocity.apache.org/tools/releases/2.0/javadoc/org/apache/velocity/tools/generic/EscapeTool.html#getNewline%28%29

示例用法:换行符:$ esc.newline这是一个新行。