JSF2.0 configurar url amigables con PrettyFaces

En este tutorial vamos a configurar las URLs amigables con las que trabajará nuestro sitio web. Para ello vamos a definir un filtro de URL en JSF utilizando ‘PrettyFaces‘.

En este ejemplo partimos de un proyecto Maven que trabaja con la impletación de JSF2.0. Los pasos que vamos a seguir son:

  1. Añadir la nueva dependencia (org.ocpsoft.rewrite) de PrettyFaces en Maven.
  2. Configurar en el fichero ‘pretty-config.xml’ las URLs amigables de nuestro sitio.

1 – Añadir dependencia Maven

Para añadir la nueva dependencia de ‘PrettyFaces‘ en Maven debemos añadir las siguientes líneas al fichero ‘pom.xml‘ del proyecto Maven:

 XML |  copy code |? 
01
<dependency>
02
    <groupId>org.ocpsoft.rewrite</groupId>
03
    <artifactId>rewrite-servlet</artifactId>
04
    <version>2.0.12.Final</version>
05
</dependency>
06
<dependency>
07
    <groupId>org.ocpsoft.rewrite</groupId>
08
    <artifactId>rewrite-config-prettyfaces</artifactId>
09
    <version>2.0.12.Final</version>
10
</dependency>

2 – Crear fichero ‘pretty-config.xml’

Tras configurar las dependencias en Maven, únicamente habrá que crear un fichero con el nombre ‘pretty-config.xml‘ dentro de la carpeta ‘WEB-INF‘.

En este fichero añadiremos toda la configuración y los mapeos de las URLs amigables con las que vamos a trabajar.

A continuación mostramos un breve ejemplo para configurar el mapeo de nuestra página de inicio:

 XML |  copy code |? 
01
<pretty-config xmlns="http://ocpsoft.org/schema/rewrite-config-prettyfaces" 
02
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
03
      xsi:schemaLocation="http://ocpsoft.org/schema/rewrite-config-prettyfaces
04
                      http://ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd">
05
 
06
 <url-mapping id="inicio">
07
 <pattern value="/" />
08
 <view-id value="/index.html" />
09
 </url-mapping>
10
 
11
</pretty-config>

3 – Ejemplo de configuración de pretty faces

En este ejemplo vamos a partir de la siguiente estructura de ficheros de nuestro sitio web:

Pretty faces url amigables
Estructura carpetas

Antes de configurar ‘PrettyFaces‘ las URLs de acceso a estos recursos eran las siguientes:

1
Página inicio - http://midominio/index.html
2
 
3
Página login - http://midominio/login.html
4
 
5
Página proudctos - http://midominio/productos/productos.html

Ahora vamos a modificar el fichero  ‘pretty-config.xml’ para añadir el mapeo de estas url y tener así URLs amigables para todas ellas. El contenido de este fichero tendrá un contenido como este:

 XML |  copy code |? 
01
<pretty-config xmlns="http://ocpsoft.org/schema/rewrite-config-prettyfaces" 
02
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
03
      xsi:schemaLocation="http://ocpsoft.org/schema/rewrite-config-prettyfaces
04
                      http://ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd">
05
 
06
 <url-mapping id="inicio">
07
 <pattern value="/" />
08
 <view-id value="/index.html" />
09
 </url-mapping>
10
 
11
 <url-mapping id="login">
12
 <pattern value="/login" />
13
 <view-id value="/login.html" />
14
 </url-mapping>
15
 
16
 <url-mapping id="productos">
17
 <pattern value="/productos" />
18
 <view-id value="/productos/productos.html" />
19
 </url-mapping>
20
 
21
</pretty-config>

Tras añadir estos nuevos mapeos ahora las URLs amigables de acceso a las diferentes páginas serán:

1
Página inicio - http://midominio/
2
 
3
Página login - http://midominio/login
4
 
5
Página productos - http://midominio/productos

En futuros tutoriales explicaremos más trucos para configurar ‘PrettyFaces’. Si no puedes esperar siempre puedes acceder a los recursos de PrettyFaces y empezar a investigar en su documentación.

Share Button
David Otero

Sobre 

David Otero es uno de los creadores y desarrolladores que componen Developando. Puedes contactar con él en León, Zamora o Madrid.
Conoce a en Google+.

    Find more about me on:
  • facebook
  • googleplus
  • linkedin
  • twitter

Deja tu comentario

Deja tus comentarios


+ 8 = quince

Maximum 2 links per comment. Do not use BBCode.
Loading Facebook Comments ...