Velocity nulls and empty strings
Solution 1
$!a
does the trick. You can use this form directly without an if
check.
Solution 2
You want Quiet Reference Notation: $!a
Here's your example:
This is the variable $!a.
If $a
is null
or ""
, Velocity will render:
This is the variable .
Official Guide section: https://velocity.apache.org/engine/devel/user-guide.html#quietreferencenotation
Solution 3
Another alternative is to modify your if
statement per Checking for Null (thanks for the link @xavi-lópez):
Approach 2: Use the fact that null is evaluated as an empty string in quiet references. (cf. http://velocity.apache.org/engine/devel/user-guide.html#quietreferencenotation)
So, your code would be:
#set ( $a = "")
#if ("$a" != "")
assert("never prints a neither gets here: " + $a)
#end
![Jordi P.S.](https://i.stack.imgur.com/aMCym.jpg?s=256&g=1)
Jordi P.S.
Updated on December 19, 2020Comments
-
Jordi P.S. over 3 years
In velocity I have a variable which its value is null. I don't want to display anything in that case.
Currently the template engine translates "" to null so I have to do.
#set ( $a = "") #if ($a) assert("never prints a neither gets here: " + $a) #end
Is there a way I could do that directly? I'd like to be able to make something like:
This is the variable $a. ## in case that $a is null i don't want 'dollar a' to be displayed