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).
![]()
