速度模板 - 新线

LdS*_*dSe 14 java templates velocity

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

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

jt.*_*jt. 17

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

VelocityContext ctx = new VelocityContext();
ctx.put("newline", "\n");
Run Code Online (Sandbox Code Playgroud)

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

$newline
Run Code Online (Sandbox Code Playgroud)

我们在需要用<br />替换字符串中的换行符的情况下使用它.


Clu*_*Ace 8

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

速度代码:

#set( $newline="
")
#set( $jsCode = "var bling='blang';{$newline}var bark='bite';{$newline}" )
<script>
$jsCode</script>
Run Code Online (Sandbox Code Playgroud)

结果:

<script>
var bling='blang';
var bark='bite';
</script>
Run Code Online (Sandbox Code Playgroud)


jbx*_*jbx 5

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

如果您确实想要一个换行符,您只需输入实际的换行符,即按 Enter 键。Velocity 中没有像 \n 这样的转义序列。