SEO-friendly URLs con Seam II

Jul 25, 2008

Vamos a ampliar la información del post anterior sobre las aplicaciones web y blogs con URLs amigables, o SEO-friendly, con conceptos más avanzados.
Partimos de la base de que tenemos configurado y funcionando el módulo UrlRewrite.

El primer problema con el que me topé es que mi aplicación usaba identificadores numéricos, tipo …/product.seam?idProduct=123. Por lo tanto necesitaba traducir el identificador numérico a una palabra descriptiva del producto, como …/product/silla o …/product/mesa.

Afortunadamente con Seam eso no presenta mucha dificultad y puede emplearse una EL Expression tipo #{rewriter.fromNameToId(‘silla’)}.
Por desgracia, en el archivo urlrewrite.xml no pueden incluirse EL Expressions.

Para solucionarlo, creé una ‘página virtual’ en el pages.xml que recogía los parámetros como String de la url y mediante una llamada a un componente de Seam los traducía en el correspondiente identificador numérico, aprovechando que en el archivo pages.xml sí que se pueden usar EL Expressions.

  • Fichero urlrewrite.xml
    ^/pruduct/([A-Za-z]*)$
    /virtual_product.seam?name=$1
  • Fichero pages.xml

    …..

     

    …..

  • Componente rewrite
    public int idProductFromName(String name) {
    // Consulta en la bbdd para halar
    // el id del producto a partir del nombre
    }

Conocimiento Open Source 

Desde siempre intentamos aplicar la filosofía Open Source también con el conocimiento, por ello nació el Blog Open Source, donde nuestros desarrolladores comparten notas, consejos y tutoriales sobre tecnología y desarrollo, soluciones a problemas diarios, bugs o cualquier información que creemos, puede ser interesante.

0 comentarios

Enviar un comentario

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

Blog de Neodoo Microsystems
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles. Puedes encontrar más información en nuestra Política de privacidad y Política de cookies.