JSF 2.0: TouchFaces

Hace poco me vi en la necesidad de realizar cierto desarrollo para Iphones, pero no tenia ganas de aprender ObjectiveC, y me tope con la implementación para mobiles de Primefaces denominada TouchFaces, la cual se basa en JQTouch (JQuery).

De ahora en adelante puedo realizar aplicaciones web basadas en JSF para dispositivos apple-touch, android, blackberry, etc...

Aca desarrollare un pequeño ejemplo de Primefaces TouchFaces.

El managed bean es sencillo.



Luego la parte mas importante la vista.



Aca la captura de pantalla desde mi ipod touch.

Adjunto codigo fuente para efectos de estudio.

Comentarios (0)

Primefaces: progressBar

Ultimamente evaluando las implementaciones de JSF me he decantado por Primefaces ya que es el que mejor se integra al ciclo de vida de JSF y utiliza JQuery que lo hace mucho rápido que incluso Richfaces e ICEfaces, aunque me falta investigar mucho mas sobre OpenFaces.

 Me dedicare a realizar algunos ejemplos sobre el uso de los componentes de Primefaces, que si bien ya existe un showcase pero a veces el código de ejemplo no se entiende muy claro.

 En esta ocasión realizare un ejemplo para el uso del componente progressBar al iniciar una página.

Primero definimos el backing bean

Luego el hilo LoadThread

La vista xhtml quedara de la siguiente forma

Adjunto código fuente para efectos de estudio

Comentarios (1)opiniones, ¿cual es la tuya?

JSF 2.0: Error Handling

Ya había realizado un post sobre como manejar las excepciones en JSF apoyandome en richfaces, pero lo hicen pensando que aún seguia utilizando JSF 1.2, esta vez lo haré casi de forma similar pero esta vez para la versión 2.0 de JSF y apoyandome con primefaces y usando un poco de spring para poder enviar los errores al contexto de la aplicación.

Este post será muy similar a como se manejan los errores como en swing, que será implementando dos clases que capturan las excepciones en tiempo de ejecucion.

Luego el factory

Ahora hay que registrar el exception factory en el faces-config.xml

Mi bean que implementa la funcionalidad para enviar los mensajes al contexto de la aplicacion sera asi:

No explicare como configurar el bean anterior con spring ya que para ello ya he abordado el tema bastante.
Mi managed bean quedara de la siguiente manera

La plantilla la defino de la siguiente manera
Y la pagina implementando la plantilla

El resultado seria así



Adjunto codigo fuente para efectos de estudio.

Comentarios (0)

Inyectar objetos JSF 2.0 en Custom Converters

Ya en una entrada previa había explicado que son los convertidores en JSF y como implementarlos, esta vez lo haré con JSF 2.0 e inyectare el acceso a datos a través de Spring.

La clave de esto es utilizar el FacesContextUtils.

De esta forma ya no es necesario registrar el converter en el archivo faces-config.xml y puede utilizarse para cualquier tipo de componente.

Comentarios (0)

Integracion de Liquibase con Spring y JPA

¿Qué es Liquibase?

Liquibase, es una libreria opensource para gestionar los cambios en base de datos. En la etapa de desarrollo de un sistema casi como norma debe versionarse el código fuente, pero no había un mecanismo para llevar un control de los cambios en la estructura de la base de datos y de esta necesidad nace liquibase.

En un equipo de desarrollo es habitual que cada miembro realice procedimientos almacenados, vistas o cambios en las estructuras de las tablas en función de las funciones que este desarrollando y al momento de integrar todo se vuelve un quilombo. Con liquibase los cambios se realizan a través de un archivo de cambios el cual se sincroniza con los demás miembros del equipo, de esta forma los cambios no se hacen directamente a la base de datos sino desde la aplicación al momento de su ejecución.

Desarrollare un pequeño ejemplo de como implementar esta libreria con Spring y JPA, del lado de la base de datos utilizare PostgreSQL. Supondremos que ya tenemos creado nuestro acceso a datos y procedemos a configurar el contexto de spring.


Ahora se debe configurar el archivo donde se declaran los cambios en la base de datos.

Cuando ejecutemos la aplicación liquibase intentara primeramente hacer efectivos los cambios configurados en db-changelog.xml

En el caso de JPA, es de tener en cuenta que siempre hay que actualizar manualmente los Entity class, ya que no es parte de las funciones de liquibase.

Adjunto código fuente para efectos de estudio.

Comentarios (1)opiniones, ¿cual es la tuya?