Cómo verificar si un valor es nulo usando Velocity

El valor nulo se prueba como el valor booleano false por Velocity

Cree la siguiente plantilla llamada example4.vm:

This is a test
#if( !$test )
	Test is null
#end
#if( $test == true )
	Test is NOT null
#end
	

Crea el siguiente archivo java:

import static org.junit.Assert.assertEquals;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;

import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;

public class VelocitySimple4 {

	public static void main(String[] argv){

		// Source directory
		String sourceDirectory = "V:/tmp/velocity/";
		
		
		// Create the velocity engine
        VelocityEngine ve = new VelocityEngine();
        
        ve.setProperty( "resource.loader", "file");
        ve.setProperty( "file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.FileResourceLoader");
        ve.setProperty( "file.resource.loader.path", sourceDirectory);
        ve.setProperty( "file.resource.loader.cache", true);
        ve.setProperty( "file.resource.loader.modificationCheckInterval", "2");

        ve.init();		
		
        // Get the template
        Template t = ve.getTemplate( "example4.vm" );

        // Create the 
        VelocityContext context = new VelocityContext();
        context.put("test", null);

        try {
	        // Create the output file
	        Writer out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream( new File( sourceDirectory + "example4.txt" ) ), "UTF8") );
	    	
	        t.merge( context, out);
	        
	        out.close();
        } catch ( Exception e ){
        	e.printStackTrace();
        }
	}
	
}

El archivo generado example4.txt será:

	
This is a test
	Test is null
	

El código primero inicia el VelocityEngine usando el cargador de recursos de archivos. La prueba válida se establece en el contexto con el valor nulo, luego la plantilla se fusiona con el contexto y la salida se almacena en el archivo example4.txt.


Referencias

Velocity

Comentarios Recientes