Como faço para criar um modelo de velocidade que produz dois '#' litterals no início da linha?

StackOverflow https://stackoverflow.com/questions/682347

  •  22-08-2019
  •  | 
  •  

Pergunta

Eu preciso criar um documento de velocidade que tem algumas linhas prefixadas com ¨ ## Foo", mas desde que o # é o comando directiva velocidade, ele não está funcionando para mim.

O que eu quero a minha saída documento para olhar como:

## Foo this
## Bar that
k1, v1
k2, v2
k3, v3

Escaping não funcionou como eu esperava. O abaixo não funcionar, obviamente, como as #s são un-escapado):

## Foo this
## Bar that
#foreach( $foo in $bar )
$foo.key, $foo.value
#end

As ## linhas não aparecem - novamente, como esperado. Mas, minhas tentativas de escapar não quer trabalhar. Escapando solução one:

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

ou presente, escapando solução de dois:

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

ou até mesmo isso ...

# set($msg = "##") 
$msg Foo this
$msg Bar that
#foreach( $foo in $bar )
$foo.key, $foo.value
#end

Este último realmente me confundiu.

Todas as idéias?

Foi útil?

Solução 3

Suspiro .... Há uma diferença entre aspas simples e aspas duplas. Isso funciona como esperado:

#set($msg = '##') 
$msg Foo this

que imprime exatamente o que queria:

## Foo this

A partir Velocity Guia do Usuário do :

As aspas simples irá garantir que o valor citado será atribuído à referência como é. aspas duplas permitem que você use referências de velocidade e diretrizes para interpolar, como "Olá $ nome"

(eu ainda estou perplexo quanto ao porquê \ # \ # não funciona.)

Outras dicas

Use a contexto Velocity :

${esc.h}${esc.h}

Se você não quiser adicionar org.apache.velocity.tools .generic.EscapeTool ou semelhante ao seu contexto, você pode usar uma versão ligeiramente modificada de sua terceira tentativa:

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

"##" é a única linha delimitador de comentário em VTL, que é provavelmente o começo de seus problemas.

## This is a comment
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top