2010-01-26 13 views

Odpowiedz

4

Właściwym sposobem jest utworzenie podklasy HttpServletRequestWrapper, zastąpienie jej getRequestURI() i innymi metodami zwracania nowego adresu URL i zawijanie za jego pomocą. Więc nie musisz zmieniać innych mapowań filtrów.

3

ale to sprawia, że ​​wszystkie inne filtry w łańcuchu nie są wywoływane.

Wystarczy ponownie skonfigurować inne filtry, aby odsłuchać na nowym url-pattern.

+0

Drugi filtr, o którym mówię, jest mapowany na/*. Ale dowiedziałem się, że mogę dodać odwzorowanie filtru, co powoduje, że jest on wywoływany. – Kyle

+0

A to także, tak. Dobrze, że znalazłeś to sam. – BalusC

3

Po co pisać, gdy masz już wiele dobrze napisanych opcji? Można użyć Tuckey filtr URL-rewrite, ale chciałbym również mieć PrettyFaces wygląd OCPsoft lub OCPsoft Przepisz za to:

Z PrettyFaces:

tworzyć WEB-INF/ładna-config.xml

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

Spowoduje to automatyczne umieszczenie wartości adresu URL "nazwa użytkownika" w parametrze żądania o nazwie "nazwa użytkownika", a ukryje oryginalny adres URL i zastąpi go nowym w linkach na stronach HTML.

Z Rewrite:

Tutaj jest to samo, używając przepisywanie, który jest nieco bardziej wyraźne, ale również bardziej wydajne i konfigurowalne.

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

Mam nadzieję, że to pomoże.

~ Lincoln

Powiązane problemy