java - template - velocity macro
Velocity nulls y cuerdas vacĂas. (3)
En velocidad tengo una variable cuyo valor es nulo . No quiero mostrar nada en ese caso.
Actualmente el motor de plantillas se traduce "" en nulo, así que tengo que hacerlo.
#set ( $a = "")
#if ($a)
assert("never prints a neither gets here: " + $a)
#end
¿Hay alguna manera de que pueda hacer eso directamente? Me gustaría poder hacer algo como:
This is the variable $a. ## in case that $a is null i don''t want ''dollar a'' to be displayed
Quieres la notación de referencia silenciosa: $! A
Aquí está tu ejemplo:
This is the variable $!a.
Si $ a es nulo o "", Velocity generará:
This is the variable .
Sección de la guía oficial: https://velocity.apache.org/engine/devel/user-guide.html#quietreferencenotation
$! a hace el truco. Puede utilizar este formulario directamente sin un cheque if.
Otra alternativa es modificar su sentencia if
por Comprobación de Null (gracias por el enlace @ xavi-lópez):
Enfoque 2: Utilice el hecho de que null se evalúa como una cadena vacía en referencias silenciosas. (consulte http://velocity.apache.org/engine/devel/user-guide.html#quietreferencenotation )
Entonces, tu código sería:
#set ( $a = "")
#if ("$a" != "")
assert("never prints a neither gets here: " + $a)
#end