2010-01-26 10 views

Respuesta

4

La forma correcta de hacerlo es crear una subclase de HttpServletRequestWrapper, anular su getRequestURI() y otros métodos para devolver la nueva URL y ajustar la solicitud con ella. Entonces no tiene que cambiar las otras asignaciones de filtro.

3

pero eso lo hace para que no se llamen a todos los demás filtros de la cadena.

Sólo reconfigurar los otros filtros para escuchar en el nuevo url-pattern.

+0

el otro filtro que hablo es asignada a/*. Pero descubrí que puedo agregar un FORWARD a la asignación de filtros y eso hace que se llame. – Kyle

+0

Y eso también, sí. Bueno, lo encontraste tú mismo. – BalusC

3

¿Por qué escribir la suya cuando ya tiene muchas opciones bien redactadas para usted? Puede utilizar Tuckey filtro de URL-reescritura, pero también tendría un aspecto PrettyFaces OCPsoft o OCPsoft Vuelva a escribir para esto:

Con PrettyFaces:

crear WEB-INF/bastante-config.xml

<url-mapping> 
    <pattern value="/#{username}" /> 
    <view-id value="/profile.jsp" /> 
</url-mapping> 

Esto colocará automáticamente el valor de la URL "nombre de usuario" en el parámetro de solicitud llamado "nombre de usuario", y ocultará la URL original y la reemplazará por la nueva en los enlaces en sus páginas HTML.

Con Rewrite:

Aquí es lo mismo que el uso de reescritura, que es un poco más explícito, pero también más potente y configurable.

ConfigurationBuilder.begin() 
    .addRule(Join.path("/{username}").to("/profile.jsp") 
       .where("username").bindsTo(Request.parameter("username"))); 

Espero que esto ayude.

~ Lincoln

Cuestiones relacionadas