Buscar en este blog

Chris Gerdes: The future race car -- 150mph, and no driver

Se ha producido un error en este gadget.

viernes, 12 de marzo de 2010

Pasar un LinkedList Java a Arreglo Javascript

En este ejemplo se muestra como pasar un LinkedList (De cualquier estructura u Objeto) contenido en un Servlet o JSP a un arreglo javascript.


En resumen, desde javascript se hace una llamada asincrona usando AJAX al servidor de aplicaciones donde se aloja la aplicacion java al Servlet o JSP con la funcion getJSON de jQuery. Este servlet obtiene informacion de la base de datos en un LinkedList y se convierte al formato JSON para enviarlo a javascript.

En el siguiente ejemplo, se crea un Web Application de Java Usando Netbeans 6.8 y GlassFish v3. Esta es la estructura del proyecto:


 Al ejecutar el proyecto, se llama al archivo index.html:

Aqui se incluye el framework jQuery 1.4.2 y el archivo jquery.code.js que es donde estara todo el codigo jquery para este proyecto.


Cuando se presiona el boton del formulario se llama al metodo mostrarListado del archivo jquery.code.js:




el metodo mostrarListado hace una llamada asincrona (Ajax) usando el metodo getJSON de jquery al servlet clientesServlet:

 

cuando el servlet recibe la solicitud, se ejecuta el metodo processRequest el cual se encargara de retornar la variable tipo JSON al javascript al lado del cliente.


¿Como lo hace?, utilizando la libreria Json-Simple podemos convertir un LinkedList de cualquier estructura a una variable JSON. En la imagen de la estructura del proyecto se ve que se incluyo la libreria.


en la imagen anterior el metodo processRequest crea un LinkedList (llamado lista) con una lista de clientes, llamando al metodo buscarClientes:


el LinkedList que se crea y retorna es de tipo cliente :





Luego que se tiene la lista de clientes, el metodo processRequest la recorre y paso a paso, utilizando la libreria Json-Simple va armando la variable JSON que retornara al javascript.

Se usa el objeto JSONObject para crear un Objeto JSON  y retornarlo. El metodo JSONObject.put, agrega elementos con la forma (nombre, valor). En un JSONObject se pueden agregar variables primitivas, Collections, Array, LinkedList (Esto va a depender de la estructura que se quiera formar)




al final, el metodo retorna la variable jsonObj que es la variable JSON en si. Esta variable tiene la misma estructura que el LinkedList


En el javascript, una vez que el servidor responde, se crea una lista HTML vacia. Luego se recorre la variable JSON que retorno el servidor, que tiene la misma estructura que tenia el LinkedList de Java y por cada cliente se crea un item y se agrega a la lista HTML:
  

Resultado:



al hacer clic se muestra el listado y se desaparece el boton:


El proyecto completo puede ser descargado aqui

No hay comentarios: