Plantillas velocity

2

Por admin | Para la categoría de Nuevas Tecnologías | noticia del 01-07-2010

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&oacute;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

Comentarios (2)

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


Comentarios cerrados automáticamente al pasar más de un año