PrettyFaces: Url mas amigables con JSF

Cuando comenzamos a crear nuestras aplicaciones quizás no nos preocupamos mucho por el nombre que le damos a nuestros archivos (jsp o xhtml) debido a que nos focalizamos en otras cosas, pero llega un momento en que las urls se vuelven demasiado largas o no son del todo descriptivas con respecto a lo que estamos mostrando o simplemente no queremos que nuestro sistema brinde demasiada información acerca de que tecnología se uso para desarrollarlo.

Ademas hay que tener en cuenta otras cosas por las cuales no es conveniente tener una url larga como por ejemplo: los motores de búsqueda valoran de forma positiva las url cortas y descriptivas o facilitar a nuestros usuarios recordar las urls.

Por todos estos motivos es que se crearon librerías que se encargan de hacer un url-rewriting (o sobre escritura de las urls de forma amigable), si bien existen varias la idea es focalizarnos en lo que es el mundo de JSF por lo cual una de las mas importantes es PrettyFaces.

¿Que es?

PrettyFaces es una librería open-source cuya principal funcionalidad es URL-rewriting (sobrescribir las urls) para lo que son aplicaciones que usan JSF (Java Server Faces) desde las versiones 1.x  a 2.x, ademas presenta una buena integración con lo que es Spring-Security (comúnmente utilizado para darle la seguridad a nuestra aplicación). Veamos algunas de las ventajas que presenta esta librería:

  • URL-rewriting: lo que permite reemplazar las urls como “/pages/admin/index.jsf” por algo mas atractivo y corto como “/admin/index”
  • Navegación por ID: Cada uno podrá definir el id de una vista que representara la ruta absoluta de la pagina.
  • Fácil configuración: Solo requiere declarar las nuevas url en un archivo xml y agregar las dependencias correspondientes.

¿Como lo agrego a mi proyecto?

Para poder usarla dentro de nuestro proyecto primero deberemos tenerla referenciada dentro de nuestro classpath para ello hay varias alternativas:

  1. Descargar la librería manualmente desde aqui
  2. Referenciarla desde Maven o Gradle

A los fines de este post mostraremos como usarla por medio de Maven por lo cual deberemos agregar dentro de nuestro archivo pom.xml lo siguiente:

Debe tenerse en cuenta que la versión de la librería que actualmente esta vigente puede ser superior a la mencionada en este post por lo cual se debería chequear aqui 

¿Como lo uso?

La forma de implementar PrettyFaces dentro de nuestro proyecto es bastante simple:

  1. Deberemos añadir las dependencias ya sea manualmente o por medio de Maven/Gradle
  2. Añadir dentro de nuestro archivo web.xml el siguiente fragmento para con el fin de que escanee todas las url y trate de reescribirlas en función de lo indicado en el archivo pretty-config.xml
  3. Creamos el archivo pretty-config.xml dentro del directorio WEB-INF  y colocamos la configuración inicial

Una vez hecho estos pasos lo único que nos resta es declarar cada una de las urls que queremos modificar, para ello deberemos colocarlo dentro del archivo pretty-config.xml. Por ejemplo pensemos en que nuestro index.xhtml se encuentra en un directorio y no queremos mostrar ni la extensión ni la carpeta donde se encuentra podríamos hacer algo como lo siguiente

Algo a tener en cuenta es con el uso de Spring-Security si le ponemos cierto tipo de seguridad a alguna pagina en especial debemos hacerlo tanto para la url absoluta como para la de PrettyFaces ya que sino el filtro de seguridad no se aplicara del todo bien.

A los fines de este ejemplo hemos dejado en este link el código con un ejemplo sin el uso de PrettyFaces y en este otro link con el uso del mismo para que cada uno pueda hacer la prueba de agregarle al proyecto por su cuenta esta librería.

Conclusión

Como hemos visto PrettyFaces nos brinda la posibilidad de hacer nuestras urls mas elegantes de una forma sencilla y sin tener que tocar demasiado de nuestro código, permitiendo que convivan ambos modelos (urls amigables con urls largas) sin ningún tipo de problemas.

You may also like...

1 Response

  1. Rodolfo dice:

    Hola, muy buena introducciòn acerca del framework prettyFaces, la verdad no lo he manejado pero con esta introducciòn dan muchas ganas de llevarlo a cabo, yo manejo PrimeFaces y creo que es muy similar, pero bueno … a aprender prettyFaces.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *