Espacio de tecnologia, software libre y sus derivados. Una horda de monos entrenados escriben de vez en cuando por aqui algunas noticias, opiniones e incluso alguna que otra cosa fuera del tema. Maqueros, favor de abstenerse que no somos lo suficientemente guapos.

Piano daemon

Archive for February, 2010

GlassFish + Velocity + Groovlets

1.- Primero Activamos los Groovlets


2.- Agregandole Velocity al asunto:
Para esto escribi una clase en java llamanda Plantilla, esta clase recibira un Map, este para los datos que manejaremos en nuestra plantilla para la vista

package agnux.util.web;

import java.io.StringWriter;
import java.util.LinkedHashMap;
import java.util.Iterator;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;

public class Plantilla {

    private static VelocityContext convert2context( LinkedHashMap params){
        VelocityContext context = new VelocityContext();
        Iterator it = params.keySet().iterator();
        while (it.hasNext()) {
            String key = ( String ) it.next();
            String value = ( String ) params.get( key );
            context.put(key , value);
        }
        return context;
    }

    public static String pegarDatosConPlantilla(String filevm , LinkedHashMap params,HttpServletRequest request){
        String valor_retorno = null;
        Template template = null;
        StringWriter writer = new StringWriter();
        VelocityEngine engine = new VelocityEngine();
        String servlet_root = request.getSession().getServletContext().getRealPath(”/”);

        Properties p = new Properties();
        p.setProperty(”resource.loader”, “file”);
        p.setProperty(”runtime.log.logsystem.class”, “org.apache.velocity.runtime.log.SimpleLog4JLogSystem”);
        p.setProperty(”runtime.log.logsystem.log4j.category”,”org.apache.velocity.runtime.log.SimpleLog4JLogSystem”);
        p.setProperty(”file.resource.loader.cache”,”false”);
        p.setProperty(”file.resource.loader.modificationCheckInterval”,”2″);
        p.setProperty(”file.resource.loader.class”,”org.apache.velocity.runtime.resource.loader.FileResourceLoader”);
        p.setProperty(”file.resource.loader.path”,servlet_root + “templates/”);

        try {
            engine.init(p);
            template = engine.getTemplate(filevm);
            template.merge( convert2context(params) , writer );
            valor_retorno = writer.toString();
        } catch( Exception e ) {
            System.out.println(”Exception caught: ” + e.toString());
        }        

        return valor_retorno;
    }
}

Aqui mi plantilla de velocity “login.vm”: (genere una directorio llamado templates… este esta a mismo nivel que WEB-INF en el arbol de el proyecto).
Plantilla velocity



Y Aqui mi groovlet que manda a llamar la plantilla:
screenshot-6.png

Introduccion al proyecto Zeigesth

Esto pasa en tu consultoria d software, por que conozco un caso asi ?