¿Cómo manejar los null
valores en Freemarker? Recibo algunas excepciones en la plantilla cuando los null
valores están presentes en los datos.
fuente
¿Cómo manejar los null
valores en Freemarker? Recibo algunas excepciones en la plantilla cuando los null
valores están presentes en los datos.
Puede utilizar el ??
operador de prueba:
Esto verifica si el atributo del objeto no es nulo:
<#if object.attribute??></#if>
Esto verifica si el objeto o atributo no es nulo:
<#if (object.attribute)??></#if>
Fuente: FreeMarker Manual
has_content
, junto a la comprobación de nulos, también comprueba si el valor no está vacío. Esto funciona para cadenas, secuencias, hashes o colecciones. Si el objeto es una fecha, un booleano o un número, entonces actúa como no vacío. Para todos los demás tipos, actuará como vacío.
A partir de freemarker 2.3.7, puede utilizar esta sintaxis :
${(object.attribute)!}
o, si desea mostrar un texto predeterminado cuando el atributo es null
:
${(object.attribute)!"default text"}
<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.22</version></dependency>
a su pom.xml.
${(object.dateAcquired?date)!"not present"}
${salutation!'Dear Mr. or Mrs.'}
Creo que funciona al revés
<#if object.attribute??>
Do whatever you want....
</#if>
Si object.attribute
NO es NULO, se imprimirá el contenido.
Utilice el ??
operador al final de su <#if>
estado de cuenta.
Este ejemplo demuestra cómo manejar null
valores para dos listas en una plantilla de Freemaker.
List of cars:
<#if cars??>
<#list cars as car>${car.owner};</#list>
</#if>
List of motocycles:
<#if motocycles??>
<#list motocycles as motocycle>${motocycle.owner};</#list>
</#if>