$null check in velocity

JavaStrutsVelocity

Java Problem Overview


I came to know about null check using $null in velocity 1.6 through a resource updated by you. Resource: https://stackoverflow.com/questions/24495/reading-model-objects-mapped-in-velocity-templates But I am facing so many challenges that there is no $null for null check in velocity as there is no documentation provided about this. Please provide me with documentation stating $null as valid for null check in velocity.

Thanks in Advance lucky

Java Solutions


Solution 1 - Java

To check if a variable is not null simply use #if ($variable)

#if ($variable)
... do stuff here if the variable is not null
#end

If you need to do stuff if the variable is null simply negate the test

#if (!$variable)
... do stuff here if the variable is null
#end

Solution 2 - Java

Approach 1: Use the fact that null is evaluated as a false conditional. (cf. http://velocity.apache.org/engine/devel/user-guide.html#Conditionals)

#if( ! $car.fuel )

> Note: The conditional will also pass if the result of $car.fuel is the > boolean false. What this approach is actually checking is whether the > reference is null or false.

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)

#if( "$!car.fuel" == "" )

> Note: The conditional will also pass if the result of $car.fuel is an > empty String. What this approach is actually checking is whether the > reference is null or empty. BTW, just checking for empty can be > achieved by:

#if( "$car.fuel" == "" )

Approach 3: Combine Approach 1 and 2. This will check for null and null only.

#if ((! $car.fuel) && ("$!car.fuel" == ""))

> Note: The logic underlying here is that: "(null or false) and (null or > > empty-string)" => if true, must be null. This is true because "false and empty-string and not null" is never true. IMHO, this makes the > template too complicated to read.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionluckyView Question on Stackoverflow
Solution 1 - Javaa_horse_with_no_nameView Answer on Stackoverflow
Solution 2 - JavaValRobView Answer on Stackoverflow