Velocity e ignorando retorno método java
-
20-08-2019 - |
Pergunta
Eu quero adicionar um elemento à lista na minha Velocity macro. É este o único caminho para evitar texto 'true' aparecendo na saída Velocity?
#set($path = [])
#set($swallow = "a")
#set ($swallow = $path.add("blaablaa"))
Solução
Eu tenho que concordar com Terence Parr (pai de StringTemplate ) que tem comentários relevantes em entrevista Artima e um bom papel no modelo-view separação .
Modelos deve ser restrito a apresentação pura. Assim como não deve colocar detalhes da camada de apresentação do modelo, não devemos colocar manipulação de dados em nossos modelos. Fazendo quer geralmente acaba tornando a manutenção mais difícil, e ainda torna mais difícil saber , onde para fazer a manutenção.
Com base na minha própria experiência com tanto Velocity e StringTemplate, eu fortemente sugiro tomar o problema em sua pergunta (artefatos de manipulação de dados, tornando o modelo mais complicado) como uma dica e movendo toda a manipulação de estruturas de dados na camada de Java .
Outras dicas
Sim, se você quiser fechá-la para cima, então #set é seu amigo. Muitas pessoas atalho isso com uma macro assim:
#macro( call $this )#set( $stfu = $this )#end
Em seguida, você pode abreviar a
#call( $path.add('blaablaa') )