Sie sind auf Seite 1von 6

Qu ofrece Autentia?

Somos su empresa de Soporte a Desarrollo Informtico


Ese apoyo que siempre quiso tener .
Desarrollo de componentes y proyectos a medida. Auditora de cdigo y recomendaciones de mejora. Arranque de proyectos basados en nuevas tecnologas. Curso de Formacin Direccin de Proyectos Informticos. Gestin eficaz del Tiempo. Arquitecturas de desarrollo Web: Web, J2EE, SOA, WebServices, BPM, etc. Java/ J2EE a todos los niveles: JSPs, Servlets, EJBs, JMS, JNI, etc. Anlisis y diseo orientado a objeto. UML y patrones de diseo. Buenas prcticas en el desarrollo de aplicaciones Tcnicas avanzadas: Lucene, Hibernate, Spring, JSF, Struts, etc.

Nuestra mejor referencia son los conocimientos que compartimos en nuestro web

www.adictosaltrabajo.com
Decenas de entidades cuentan ya con nosotros
Para ms informacin vistenos en www.autentia.com
Tel. 91 675 33 06 - info@autentia.com

Gestin de eventos en el cliente con el soporte de Ajax de RichFaces

Pgina 1 de 5

E-mail: Contrasea:

Deseo registrarme Entrar He olvidado mis datos de acceso Inicio Quines somos Tutoriales Formacin Comparador de salarios Nuestro libro

Charlas Ms Ests en: Inicio Tutoriales

Gestin de eventos en el cliente con el soporte de Ajax de RichFaces DESARROLLADO POR: Jose Manuel Snchez Surez

Catlogo de servicios Autentia

Consultor tecnolgico de desarrollo de proyectos informticos. Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factora y formacin Somos expertos en Java/J2EE

Anuncios Google

Ajax

Ajax Grid Examples

PHP Ajax Framework ltimas Noticias

Fecha de publicacin del tutorial: 2010-09-04


Share | Regstrate para votar

X Charla Autentia Talend - Vdeos y Material Comic Flash sobre la decadencia del software Comentando el Libro: Todo va a cambiar de Enrique Dans Java Specialist Master Course Corto sobre Metodologas giles

Gestin de eventos en el cliente con el soporte de Ajax de RichFaces.

0. ndice de contenidos.
1. 2. 3. 4. 5. 6. Introduccin. Entorno. El atributo onComplete. Condicionando el evento. Referencias. Conclusiones.

1. Introduccin
En este tutorial vamos a proponer una solucin sencilla a la necesidad de provocar un evento en el cliente cuando termine el procesamiento de una peticin en el servidor, con el soporte de Ajax (A4JSF) de RichFaces. Como digo, la solucin es sencilla, si bien, despus vamos a complicarla condicionando el evento en el cliente al procesamiento correcto o no de la peticin en el servidor.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=richFacesClientSide... 04/09/2010

Gestin de eventos en el cliente con el soporte de Ajax de RichFaces

Pgina 2 de 5

Para ms informacin sobre RichFaces podis consultar el resto de tutoriales que tenemos en adictos, un buen comienzo puede ser el de Introduccin a RichFaces... ;-)

Histrico de NOTICIAS

2. Entorno.
El tutorial est escrito usando el siguiente entorno: Hardware: Porttil MacBook Pro 17' (2.93 GHz Intel Core 2 Duo, 4GB DDR3 SDRAM). Sistema Operativo: Mac OS X Snow Leopard 10.6.1 Jboss Seam 2.2.0.GA. RichFaces 3.3.3.CR1 Maven 2.2.1. Eclipse 3.5: Ganymede, con IAM (plugin para Maven). Apache Tomcat 6.0.20 con la jdk 1.5.

ltimos Tutoriales

Contratos giles y TDD SQL Joins explicados de forma grfica con diagramas Venn Introduccin bsica a la herramienta DBSchema MediaWiki -

3. El atributo onComplete.
El objetivo es renderizar en el cliente un botn que al pulsarse se deshablite y provoque un evento va Ajax en el servidor, tras la respuesta del servidor mostrar un mensaje al cliente, una alerta para simplificar el ejemplo, y se volver a habilitar. La solucin es la siguiente: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 <a4j:form id="reportForm"> <h:panelGrid columns="3"> <h:outputLabel id="labelForReference" for="reference" value="Referencia"> <h:inputText id="reference" value="#{productReportCtrl.reference}" required="true"> <a4j:support event="onblur" reRender="generate" /> </h:inputText> <a4j:commandButton id="generate" value="#{messages ['action.generateReport']}" action="#{productReportCtrl.generate}" oncomplete="alert('Informe generado correctamente');this.disabled=false;" onclick="this.disabled=true;" /> </h:panelGrid> </a4j:form>

NamespacePermissions Prey, localizador de dispositivos mviles robados

ltimos Tutoriales del Autor

Envo de correo electrnico con el soporte de Jboss Seam. Creacin de servicios web RESTful con el soporte de RESTeasy de Jboss Seam. Facelets en JSF 2: sistema de plantillas y componentes por composicin. DbVisualizer free version. Session TimeOut en RichFaces, con el soporte de Jboss Seam.

Ya haba dicho que la solucin era sencilla, basta con aadir al componente de accin el atributo onComplete y programar el evento que se ejecutar cuando termine el procesamiento de la peticin. Vamos a leer algo ms el cdigo: lnea 1: incluimos un componente de formulario con el soporte de ajax, lnea 3: incluimos un componente que renderiza una tabla con tres columnas, lnea 5: incluimos un componente de etiqueta que pinta un texto para indicar el contenido del siguiente componente, lnea 7 y siguientes: aadimos un componente de entrada de texto para incluir la referencia a un producto (por ejemplo), parmetro que recibir el managedBean cuando reciba la peticin, lnea 11 y siguientes: el componente de accin que provoca la invocacin al mtodo generate del managedBean productReportCtrl, quien en funcin de la referencia del producto realizar la lgica de negocio necesaria, lnea 16: cerramos el componente que renderiza la tabla, lnea 18: cerramos el componente que renderiza el formulario,

Sguenos a travs de:

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=richFacesClientSide... 04/09/2010

Gestin de eventos en el cliente con el soporte de Ajax de RichFaces

Pgina 3 de 5

4. Condicionando el evento.
Como os comentaba en la introduccin vamos a complicarlo algo ms, condicionando el evento en el cliente al procesamiento correcto o no de la peticin en el servidor. Este sera el cdigo del correspondiente managedBean, con el soporte de anotaciones de Jboss Seam: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 @Name("productReportCtrl") @Scope(ScopeType.SESSION) public class ProductReportCtrl { @In protected StatusMessages statusMessages; private String reference; public String getReference(){ return reference; } public void setReference(String reference){ this.reference=reference; } public void generate(){ if (reference == notFound()){ statusMessages.addFromResourceBundle(Severity.ERROR, "action.msg.error"); return; } // TODO: invocar a la lgica de negocio que genera el informe } private boolean notFound(){ // TODO: invocar la lgica de negocio que comprueba que la referencia existe } }

ltimas ofertas de empleo


2010-08-30

Otras Electricidad BARCELONA.


2010-08-24

Otras Sin catalogar LUGO.


2010-06-25

T. Informacin - Analista / Programador BARCELONA.

Y ah va el cdigo del xhtml: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 <a4j:form id="reportForm"> <h:panelGrid columns="3"> <h:outputLabel id="labelForReference" for="reference" value="Referencia"> <h:inputText id="reference" value="#{productReportCtrl.reference}" required="true"> <a4j:support event="onblur" reRender="generate" /> </h:inputText> <a4j:commandButton id="generate" value="#{messages ['action.generateReport']}" action="#{productReportCtrl.generate}" data="#{facesContext.maximumSeverity.ordinal ge 2}" oncomplete="if(data == false) { alert('Informe generado correctamente'); } else { alert('Se ha producido un error en la generacin') } " /> </h:panelGrid> </a4j:form>

Hemos introducido en el componente de accin el atributo data que puede recoger un valor de cualquier managedBean o de cualquier variable de contexto publicada en el entorno de renderizacin de la pgina. El atributo acepta notacin JSON, pero a nosotros solo nos interesa asignarle el resultado de una condicin que evala si existe algn error en el contexto de JSF cuya criticidad sea mayor que WARNING (#{facesContext.maximumSeverity.ordinal ge 2}: el atributo maximumSeverity de la clase FacesContext almacena la mayor criticidad de los mensajes encolados con una referencia a un item de la clase Severity, nosotros hacemos uso del ordinal de la enumeracin).

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=richFacesClientSide... 04/09/2010

Gestin de eventos en el cliente con el soporte de Ajax de RichFaces

Pgina 4 de 5

Con ello en el atributo onComplete podemos aadir una condicin en base al contenido de ese data que nos permita mostrar un mensaje u otro, para el objetivo del tutorial basta, pero podramos hacer uso de un componente de ventana modal que pintase los errores que encolamos en el managedBean y mostrarlo o no mostrarlo.

5. Referencias.
Introduccin a RichFaces http://livedemo.exadel.com/richfaces-demo/richfaces/commandButton.jsf? tab=info&cid=250770 http://seamframework.org/Community/SeamJQueryIntegration http://www.icefaces.org/JForum/posts/list/9799.page

6. Conclusiones.
Nos resulta bastante til tener este nivel de control sobre los eventos y respuestas frente a estos eventos que nos proporcionan las libreras de componentes JSF con las que trabajamos da a da. Si os veis en la necesidad en algn momento, espero que os haya servido de ayuda. Un saludo. Jose jmsanchez@autentia.com

Anmate y comntanos lo que pienses sobre este TUTORIAL:


Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.

Enviar comentario
(Slo para usuarios registrados)

Registrate y accede a esta y otras ventajas

COMENTARIOS

Esta obra est licenciada bajo licencia Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5

Copyright 2003-2010 All Rights Reserved | Texto Contacto Powered by Autentia | legal y condiciones de uso | Banners |

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=richFacesClientSide... 04/09/2010

Gestin de eventos en el cliente con el soporte de Ajax de RichFaces

Pgina 5 de 5

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=richFacesClientSide... 04/09/2010

Das könnte Ihnen auch gefallen