Java 如何创建输出两个'#';在队伍的开头有垃圾吗?

Java 如何创建输出两个'#';在队伍的开头有垃圾吗?,java,velocity,Java,Velocity,我需要创建一个velocity文档,其中某些行的前缀为¨###Foo“,但由于是velocity指令命令,因此它对我不起作用 我希望我的输出文档的外观: ## Foo this ## Bar that k1, v1 k2, v2 k3, v3 转义未达到我的预期效果。显然,以下内容不起作用,因为#s未转义): ###行没有显示--再次,正如预期的那样。但是,我尝试的转义也不起作用。转义解决方案一: \## Foo this \## Bar that #foreach( $foo in $bar

我需要创建一个velocity文档,其中某些行的前缀为¨###Foo“,但由于
是velocity指令命令,因此它对我不起作用

我希望我的输出文档的外观:

## Foo this
## Bar that
k1, v1
k2, v2
k3, v3
转义未达到我的预期效果。显然,以下内容不起作用,因为
#
s未转义):

###行没有显示--再次,正如预期的那样。但是,我尝试的转义也不起作用。转义解决方案一:

\## Foo this
\## Bar that
#foreach( $foo in $bar )
$foo.key, $foo.value
#end
或者这个,逃避解决方案二:

\#\# Foo this
\#\# Bar that
#foreach( $foo in $bar )
$foo.key, $foo.value
#end
甚至这个

# set($msg = "##") 
$msg Foo this
$msg Bar that
#foreach( $foo in $bar )
$foo.key, $foo.value
#end
最后一个真的把我弄糊涂了

有什么想法吗?

“##”是VTL中的单行注释分隔符,这可能是问题的开始

## This is a comment
使用:

如果您不想添加或类似于您的上下文,可以使用稍微修改过的第三次尝试版本:

#set($msg = "#") 
${msg}${msg} Foo this

唉……单引号和双引号之间有区别。这就像预期的那样有效:

#set($msg = '##') 
$msg Foo this
打印出我想要的东西:

## Foo this
从:

单引号将确保引用值按原样分配给引用。双引号允许您使用velocity引用和指令进行插值,例如“Hello$name”


(我仍然不明白为什么\#\#\#不起作用。)

显然,以及为什么我在问题中陈述了这么多。这是可行的,而且不需要弄乱上下文(这需要我修改代码)。太棒了。我不明白为什么“#\#”不起作用,但这是2倍#“是的P但是,我不是在抱怨……这很有效!我假设当Velocity解析模板时,首先提取注释。因此,模板中双哈希之后的所有内容都将完全消失。但我只是在猜测。
#set($msg = '##') 
$msg Foo this
## Foo this