Estamos acostumbrados al desarrollo de las vistas o tratamiento de los datos desde la aplicaciones web realizadas con j2ee y frameworks del ámbito de java mediante jsp y jstl
Velocity es una forma de representación más y una alternativa a las páginas jsp, muy adecuada para facilitar el modelo vista controlador
Eclipse cuenta con un plugin que nos sirve para el reconocimiento de las palabras clave de velocity llamado veloeclipse
http://veloeclipse.googlecode.com/svn/trunk/update/
Con esto tenemos un plugin en eclipse que nos permite trabajar y reconocer la palabras claves del lenguaje vtl para velocity
Una vez descargado el plugin vamos a descargar velocity tools a la siguiente direccion http://velocity.apache.org/download.cgi#Tools
Si nos descargamos el archivo zip al descomprimirlo dentro del directorio principal temos dentro del directorio examples un fichero war llamado simple que corresponde a un proyecto web configurado para empezar a trabajar con velocity
utilidad, comentar que se puede aplicar con aplicaciones web j2ee, struts, springframework y cms de java como liferay etc..
Características básicas del lenguaje de plantillas velocity vtl, una breve introducción teórica a modo de resumen aunque en el sitio oficial tienen bastante información apache velocity
Una vez cargado el proyecto simple war nos permite trabajar cómodamente. y gracias al plugin veloeclipse
Ejemplo de código, en el que se pone a prueba algunos elementos del lenguaje de platillas vtl
Para la declaración de una variable utilizamos #set( $variabledeclarada = “valor”), con la característica de que el valor puede ser tanto una
Utilizamos el valor # para realizar algo y $ para obtener algo, como primer ejemplo tenemos la declaración de la variable título con # set para luego ser utilizada dentro de un h2 con $titulo devolviendo el valor al encabezado de página.
Los comentarios en línea se utiliza los caracteres ##. Para los comentarios de múltiples líneas #* *#
Para escapar una variable utilizamos el carácter \
Un objeto declarado se puede acceder $objeto.setMetodo y devolver el valor con $objeto.nombre
Sentencia #if (comparación ) #else #end
Bucle #foreach #end, recorrido de arrays
Las macro nos permiten crear bloques de código y reciben parámetros, estos bloques pueden trabajar con html y valores de variables, en el ejemplo se construye una tabla con el campo de las celdas de fondo verde
Objeto bean prueba
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | public class Prueba { private String nombre; private String apellidos; private int edad; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getApellidos() { return apellidos; } public void setApellidos(String apellidos) { this.apellidos = apellidos; } public int getEdad() { return edad; } public void setEdad(int edad) { this.edad = edad; } /** To test exception handling in templates. */ public boolean whine() { throw new IllegalArgumentException(); } } |
Código del fichero tools.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <tools> <data type="boolean" key="xhtml" value="true"/> <data type="boolean" key="isSimple" value="true"/> <data type="number" key="version" value="2.0"/> <data key="foo">this is foo</data> <data key="bar">this is bar.</data> <toolbox scope="request"> <tool key="toytool" class="ToyTool" restrictTo="index*"/> <tool key="prueba" class="Prueba" /> </toolbox> <toolbox scope="session"> <tool key="map" class="java.util.HashMap"/> </toolbox> </tools> |
Código de primero.vm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | <html> <body> #set($titulo = "primer ejemplo con velocity") <h1 > $titulo </h1> ##esto es un comentario #* esto son múltiples comentarios de varias líneas de código *# vamos a escapar una variable <br/> \$titulo $prueba.setNombre("pedro") <br/> nombre es: $prueba.nombre comparación: <br/> #if($titulo && $nuevo) sale bien #else sale mal #end #set( $listaalumnos = ["pedro","juan","ana"]) <br/> listado: <br/> #foreach( $alumno in $listaalumnos) $alumno <br/> #end <br/> tabla #macro( tabla $color $listado) #foreach ($alumno in $listado) <tr><td bgcolor="$color">$alumno</td></tr> #end #end #set($color="green") <table> #tabla( $color $listaalumnos) </table> </body> </html> |
resultado de la ejecución





hola.. solo quiero saber si podrias decirme cuales son los pasos para instalar apache velocity desde cero y poder trabajar en terminal con ubuntu
En el post viene explicado un ejemplo concreto sobre velocity tanto ejecución descarga y enlace oficial a velocity.
Las plantillas velocity sustituyen a las jsp normales, lo primero tener un conocimiento general de funcionamiento, segundo un editor que nos facilite el reconociemiento de los tags velocity (en este caso un plugin para eclipse el veloeclipse)
Después según se trabaje con un framework como spring o struts existen jars específicos de integración de las plantillas velocity en dichos frameworks
Con ubuntu puedes utilizar tanto netbeans como eclipse la ventaja es el coloreado de los diferentes lenguajes además del reconocimiento de errores facilitando la escritura y depuración de errores