2011-01-07 9 views
5

Mam wiele plików XHTML w kilku folderach. Chcę przepisać url jakoJak określić wzorzec przepisywania w pages.xml

z http://localhost:8080/folder1/file1.seam do http://localhost:8080/folder1/file1

W file1.page.xml dałem

<rewrite pattern="/folder1/file1" /> 

Powyższy dostarczyła mi prawidłowego wzorca. Ale mam wiele plików i nie chcę określać tego wzorca przepisywania w każdym pliku page.xml. Czy istnieje sposób to określić w pliku pages.xml?

EDIT:

http://localhost:8080/folder2/file2.seam to http://localhost:8080/folder2/file2 
http://localhost:8080/folder3/file3.seam to http://localhost:8080/folder3/file3 

Więcej próbki moim tłumaczeniu

Odpowiedz

2

Tak, jest. Spójrz na here.

+0

Nie szukam parametrów ukrywania zapytań. Po prostu chcę ukryć rozszerzenie .seam z adresu URL. To nie działa. – Achaius

8
  • Przepisywanie występuje w oparciu o przepisanie znalezione dla widoków na stronach wzory.xml

  • Seam URL przepisywanie robi zarówno przychodzące i wychodzących Przepisywanie URL na podstawie tego samego wzoru

Przykład:

<page view-id="/home.xhtml"> 
    <rewrite pattern="/home" /> 
</page> 
  • dowolny przychodzące żądanie/home zostanie wysłany do /home.xhtml
  • każde wygenerowane łącze, które normalnie wskazywałoby do /home.seam będzie zamiast być zapisane jako /home
  • wzorców przepisać tylko dopasować część adresu URL przed Parametry kwerendy

  • Oba te zostaną dopasowane

    • /home.seam?conversationId=13
    • /home.seam?color=red

reguły przepisywania można wziąć te paramters zapytań do uwagę

<page view-id="/home.xhtml"> 
    <rewrite pattern="/home/{color}" /> 
    <rewrite pattern="/home" /> 
</page> 

przychodzące żądanie dla /home/red serwowane będą jak gdyby to była prośba o /home.seam?color=red

Jeśli kolor jest parametr strony wychodzących URLr /home.seam?color=blue będzie wyjście jako /home/blue

Pamiętaj:

  • Reguły są przetwarzane w celu bardziej szczegółowe zasady

  • listy przed bardziej ogólnymi zasadami

Jeśli chcesz ukryć id rozmowy, można zrobić tak:

<page view-id="/search.xhtml"> 
    <rewrite pattern="/search-{conversationId}" /> 
    <rewrite pattern="/search" /> 
</page> 

Teraz zostanie wpisany /search.seam?conversationId=16 pl jak /search-16

Jeśli chcesz dopasować wiele stron używać symboli wieloznacznych

<page login-required="true" view-id="/admin/*"> 

nadzieję, że to pomaga

Aktualizacja

Aby odpowiedzieć na to pytanie aktualizacji.

Można utworzyć przepisywanie symboli wieloznacznych przy przepisywaniu zewnętrznym, ale nie w przypadku przepisywania adresu URL dla szwu.Przy przepisywaniu opartym na widoku musisz zadeklarować wzorzec dla każdego identyfikatora widoku, tak jak opisałeś siebie. Przepraszam, ale to po prostu sposób w jaki ciastko się kruszy. :-)

+0

dzięki za odpowiedź. Większość dyskusji dotyczy modyfikacji pliku page.xml w przypadku adresów URL z parametrami strony. Zmodyfikowaliśmy moje pytanie i dodałem dodatkowe adresy URL, naszym zamiarem jest po prostu obcięcie szwu we wszystkich zdarzeniach i nie martwimy się teraz o parametry zapytania i szukamy ogólnego mechanizmu do zastosowania tego w pliku pages.xml. Wątek zawiera fragment, w którym wspomniano, że login-required = true dla wszystkich stron w folderze "admin". Nadal nie mogę uzyskać ponownego napisania działającego dla wszystkich moich folderów przy użyciu prostej reguły ponownego zapisu. – Achaius

+0

Sprawdź aktualizację, aby uzyskać odpowiedź –