Migración a ICEfaces 2.0

1
9408

Migración a ICEfaces 2.0

 

Índice de contenidos.

1. Introducción

Aunque ya hace más de 1 año que tenemos la segunda versión de JSF, hace tan solo unos pocos meses que ICEFaces ha sacado una nueva versión de su librería compatible con JSF 2. Sobre la nueva versión de JSF podéis consultar este tutorial donde Alex nos explicaba sus novedades y un ejemplo de uso. En este tutorial vamos a ver los cambios a realizar en un proyecto donde ya tuviéramos montada una versión anterior de ICEfaces para migrarlo a la última versión y empezar a utilizar las nuevas mejoras que trae JSF 2.

2. Entorno

  • MacBook Pro 15′ (2.4 GHz Intel Core i5, 4GB DDR3 SDRAM).
  • Sistema Operativo: Mac OS X Snow Leopard 10.6.4
  • JDK 1.6.0_20
  • ICEfaces 2.0.2

3. Librerías

En el pom.xml tenemos que actualizar las librerías de ICEFaces de la 1.8.2 a la 2.0.0

	
	    org.icefaces
	    icefaces
	    2.0.2
	
	
	
	    org.icefaces
	    icefaces-compat
	    2.0.2
	

La primera de las 2 librerías es el core de ICEFaces. La segunda se encarga de la compatibilidad de los componentes con las versiones anteriores.

4. faces-config.xml

Lo siguiente será actualizar el fichero faces-config.xml, concretamente la definición del schema que apunta a la nueva de JSF 2.

Con ICEFaces 1.8.2

	
		...
	

Con ICEFaces 2.0

	
		...
	

A partir de la versión 2 de JSF, Facelets ha quedado integrado como motor de plantillas estándar por lo que no es necesaria ninguna configuración adicional. Por ello eliminamos del faces-config.xml la siguiente línea:

En JSF 2 no es necesario añadir los managed beans al faces-config.xml, bastará con anotarlos con @ManagedBean, tampoco los converters ni validators.

	com.icesoft.faces.facelets.D2DFaceletViewHandler

5. web.xml

Los servlets Blocking Servlet y Persistent Faces Servlet que era obligatoria su definición han pasado a mejor vida por lo que hay que eliminarlos. Para ello editamos el fichero web.xml y borramos tanto la definición del servlet como el mapeo:

	
        Persistent Faces Servlet
        com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet
        1
    

    
        Persistent Faces Servlet
        *.iface
        *.jspx
        /xmlhttp/*
        *.faces
        *.jsf
        /faces/*
    

    
        Blocking Servlet
        com.icesoft.faces.webapp.xmlhttp.BlockingServlet
        1
    

    
        Blocking Servlet
        /block/*
    

El Faces Servlet deberá recoger todas las peticiones JSF por lo que el mapeo debe quedar de la siguiente forma:

  
    Faces Servlet
    javax.faces.webapp.FacesServlet
    1
  
  
  
    Faces Servlet
    /faces/*
  

Si en tu aplicación estás utilizando el ResourceServlet deberas usar el CompatResourceServlet ya que éste ha sido renombrado:

	
        Resource Servlet
        com.icesoft.faces.webapp.CompatResourceServlet
        1
    

    
        Resource Servlet
        /xmlhttp/*
    

Otro aspecto importante será modificar los parámetros del contexto que ayudarán a ICEFaces 2 en relación al escapado de los comentarios y la validación:

	
	    Default Suffix.
	    javax.faces.DEFAULT_SUFFIX
	    xhtml
	
	
	
        javax.faces.FACELETS_SKIP_COMMENTS
        true
    

    
        javax.faces.VALIDATE_EMPTY_FIELDS
        false
    

Hemos definido que las páginas que conforman la parte de presentación serán documentos xhtml por lo que habrá que cambiar las .jsp a .xhtml. También modificar las cabeceras de los documentos, para ello os recomiendo leer este tutorial de Jose sobre cómo modificar las JSPs en una migración al sistema de plantillas de Facelets.

	
	
		...    
		 
	
	<?xml version="1.0" encoding="UTF-8"?> 
	<html xmlns="http://www.w3.org/1999/xhtml"
      	  xmlns:h="http://java.sun.com/jsf/html"
      	  xmlns:ice="http://www.icesoft.com/icefaces/component">

También será necesario eliminar el ContextEventRepeater

	
        com.icesoft.faces.util.event.servlet.ContextEventRepeater
    

6.Conclusiones

Si utilizas ICEFaces en versiones anteriores a la 2.0.x es muy recomendable que actualices a las 2 ya que podrás utilizar todas las nuevas características que incluye el estándar JSF 2 que hacen el desarrollo mucho más sencillo y rápido.

Espero que te haya servido de ayuda.

Un saludo. Juan.

1 COMENTARIO

  1. Es interesante ver el juego que ha dado y sigue dando la definición de la JSR relativa a Servlets. A mi me gusta también el hecho de la importancia que Ajax y las anotaciones estan tomando en estas nuevas evoluciones. De JSF me gusta la interactividad que ofrece entre la capa de la vista (las propias JSFs) y los Managed Bean. Esta estructura me parece una visión organizada alternativa de una aplicación web.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad