4Trabes Historias de una empresa en 100 metros cuadrados

El blog de Trabe Soluciones

Pretty URLs en Java: Outbound rules con URLRewriteFilter

| | Comentarios

Hace ya algunos meses os hablamos de un interesante modo de conseguir URLs bonitas sin depender de Apache. Como se comenta en ese post, URLRewriteFilter puede ayudarnos a conseguir ese propósito.

Hoy nos hemos encontrado con un problema con las outbound rules: siguiendo escrupulosamente la documentación proporcionada en la página de URLRewriteFilter, no era posible hacer que las outbound rules con parámetros funcionasen correctamente. Según la documentación del filtro, una outbound rule se escribe tal que así:

1
2
3
4
<outbound-rule>
    <from>^/world.jsp?country=([a-z]+)&city=([a-z]+)$</from>
    <to>/world/$1/$2</to>
</outbound-rule>

Tras un buen rato tirándonos de los pelos y haciendo todo tipo de experimentos se nos encendió una lucecita. "¿Acaso el ‘?’ no tiene un significado específico en una expresión regular?¿No habría que escaparlo? Y escribimos la expresión escapando el ‘?’:

1
2
3
4
<outbound-rule>
    <from>^/world.jsp\?country=([a-z]+)&city=([a-z]+)$</from>
    <to>/world/$1/$2</to>
</outbound-rule>

Y todo comenzó a funcionar, con las limitaciones inherentes a este tipo de solución (que veremos en algún post futuro) pero correctamente.

Lo sentimos, pero los comentarios están cerrados

Me acabas de salvar la vidaaaaaaa!!!!!!!!!!!!!

No funciono :(

<from>^/prueba.jsp\?usuario=([a-z]+)$</from>
<to>/$1</to>

</outbound-rule>

15/Jul/2009 Anonimo

@Noelia de nada!!

@Anonimo con esa info es imposible tratar de echarte un cable. De todos modos si te ciñes a la receta te garantizo que funciona :D

05/Nov/2009 Marcos