Introduccion a ZK
Bueno pues esta es una guia rapida pa crear aplicaciones RIA con un framework que ando analizando pa un proyecto je.
1) pagina oficial, aqui encontraran el lugar para descargarlo y documentacion al respecto
2) Ir al sitio de downloads y descargan los jars.
3) Agregan a su proyecto /lib/*.jar, /lib/ext/*.jar y /lib/zkforge/*-jar
4)Teniendo esto, agregamos las siguientes lineas a nuestro web.xml
[code]
Used to clean up when a session is destroyed
ZK Session Cleaner
org.zkoss.zk.ui.http.HttpSessionListener
ZK loader for ZUML pages
zkLoader
org.zkoss.zk.ui.http.DHtmlLayoutServlet
1
zkLoader
*.zul
zkLoader
*.zhtml
The asynchronous update engine for ZK
auEngine
org.zkoss.zk.au.http.DHtmlUpdateServlet
auEngine
/zkau/*
index.zul
[/code]
5) Generamos un bean con unas cuantas propiedades
[code]
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.jali.ria.zk.beans;
/**
*
* @author jali
*/
public class Empleado {
private String nombre;
private int edad;
private String direccion;
private String ubicacion;
public Empleado(){}
public Empleado(String nombre, int edad, String direccion, String ubicacion){
this.nombre = nombre;
this.edad = edad;
this.direccion = direccion;
this.ubicacion = ubicacion;
}
//Omiti los getter/ setters para ahorrar espacio :P
}
[/code]
6) Ya tenemos laparte complicada jajajaja. Ahora nadamas generamos un controlador para nuestros empleados
[code]
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.jali.ria.zk.ui;
import java.util.ArrayList;
import java.util.List;
import com.jali.ria.zk.beans.Empleado;
import org.zkoss.zul.Intbox;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
/**
*
* @author jali
*/
public class EmpleadoController extends Window {
List listaEmpleados = new ArrayList();
public EmpleadoController() {
listaEmpleados.add(new Empleado("Jali", 25, "retorno 1 sur 20", "Mexico DF"));
listaEmpleados.add(new Empleado("Iberck", 26, "nva atzacoalcos", "Establo de Mexico"));
listaEmpleados.add(new Empleado("Bnk", 100, "queretaro queretaro", "Creo que queretaro xD"));
}
public void refrescarUI() {
Listbox lb = (Listbox) getFellow("lb");
Empleado empleado = (Empleado) lb.getSelectedItem().getValue();
((Textbox)getFellow("nombre")).setValue(empleado.getNombre());
((Intbox)getFellow("edad")).setValue(empleado.getEdad());los archivos fuente
((Textbox)getFellow("direccion")).setValue(empleado.getDireccion());
((Textbox)getFellow("ubicacion")).setValue(empleado.getUbicacion());
}
public List getListaEmpleados(){
return listaEmpleados;
}
public void setEmpleados(List listaEmpleados){
this.listaEmpleados =listaEmpleados;
}
}
[/code]
7) La parte engorrosa del asunto es que tiene sintaxis propia de html o bueno... la extension de los archivos es .zul
[code]
Name:
Description:
Latitude:
Longitude:
[/code]
Saludos banda
- jali's blog
- Inicie sesión o regístrese para enviar comentarios
Gracias por la info
Ya había visto demos de ZK pero la verdad no me había metido a ver cómo se programa. Pensé que iba a ser algo de puro UI y que podías usar cualquier framework para tu aplicación, pero veo que no es así, es algo completo.
Me parece muy engorroso tener que hacer código en la aplicación para copiar datos del bean empleado a los elementos de la página (todo eso de
). En Tapestry le pones a un textfield que su valor es por ejemplo empleado.nombre y se encarga de buscar en tu controlador una propiedad o variable de instancia que se llame empleado, la obtiene y le pide la propiedad nombre y eso es lo que usa para desplegar el valor; para un submit, obtiene el empleado y busca el setNombre y le modifica el valor, ahorrándote ese código. Sería bueno después tener un ejemplo completo pero en Tapestry, luego si tengo tiempo hago esto mismo pero en T5 para comparar no solamente la cantidad de código y XML/HTML sino la comprensibilidad del código y ver qué tanto hace el framework por nosotros.
Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley
gracias
Estaria bien checar tapestry. la verdad unicamente lo vi de rapido jeje. Pero ps lo checo y ahi luego te digo que tal.
Saludos
hola!
muy buen tutorial, directo y simple como me gustan... yo tambien ando evaluando este framework
sobre los controladores, en ZK tambien se puede utilizar EL (Expression Language) y hacer bindings al estilo JSF, por ejmplo
#{controller.empleado.nombre}, algo de eso vi en uno de los tutoriales..
saludos
ZK Interesante
Se ve interesante el framework este ZK, he visto mucho movimiento en los últimos meses del framework pero no me he podido meter a fondo a revizarlo
Gracias por la reseña jali
JavaRanch big moose saloon member
Gracias!!!
Con tan sencillo y útil post me has ayudado enormemente con un proyecto en ejecución al cual no había podido implementarle al 100% MVC ya que las librerías con las que cuento no me permitían implementar los métodos que conozco y los muchos que había averiguado para hacerlo. Se me había hecho complicado conseguir una librería que se adaptara a lo que necesito ya que uso Hibernate y si funcionaba una cosa no funcionaba otra, así que de verdad GRACIAS!!! Para terminar de aprovechar la oportunidad tendrás algún código como el actual que incluya el manejo de eventos tales como el click de los botones?De ser así me ayudarías aún más. Gracias!!