如何在Velocity中转义#号

59
我想知道如何在Velocity中转义#号。反斜杠似乎可以转义它,但是它也会被打印出来。

这样做:


这样做:

\#\#

打印:

\#\#

我想:

## 

4
请注意,至少在2012年起,您现在可以使用反斜杠:# 和$ 在Velocity中转义。请访问http://velocity.apache.org/engine/devel/user-guide.html#Getting_literal了解更多信息。 - Steven
2
请参见http://velocity.apache.org/engine/1.7/user-guide.html章节“转义VTL指令”。 - EagleRainbow
6个回答

88
这个:

#[[
##
]]#

将产生:

##

#[[ ... ]]#内的任何内容都不会被解析。


1
正是我所需要的!但是上面的代码会生成\n##\n,如果你不想在##前后有空行,只需使用#[[##]]#即可。 - adentinger

51

如果您不想使用EscapeTool,您可以这样做:

#set( $H = '#' )
$H$H

这是我需要时使用的,转义工具有点笨重。 - Ruan Mendes
我认为这总是有效的,与速度版本无关。 - hudidit

6

Thomas,你能告诉我工具箱配置放在哪里吗? - sufinawaz

3

将esc工具添加到您的工具箱中,然后您就可以使用${esc.hash}。


2

0

集合技术是一种很好的方法,可以避免任何需要转义的字符,例如如果您想要将 $name 后面跟着 "_lastname",那么可以这样做:

set ($n = '_lastname)

并在您的模板中添加以下内容:

$name$n

一切都很好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接