- Rozwiązanie open-source / url / # {rewriting} dla serwletów, JSF i Java EE
- SEO i spójność:
- 1. Dołącz PrettyFaces w swoim projekcie
- 2. Utwórz pretty-config.xml
- Dodaj mapowania do swojej konfiguracji
- 3. Uruchom aplikację!
- Czym różni się PrettyFaces:
- Dlaczego nie spróbuj PrettyFaces teraz?.
- P. Dlaczego moje komponenty Tomahawk / MyFaces lub inne dodatki innych firm przerywają działanie, gdy używam PrettyFaces?
- P. Dlaczego podczas korzystania z MyFaces otrzymuję NullPointerException, gdy próbuję użyć normalnej nawigacji twarzą?
- P. Czy mogę skonfigurować PrettyFaces za pomocą Adnotacji?
- P. Jak włączyć rejestrowanie, aby móc stwierdzić, co się naprawdę dzieje?
- P. Czy mogę mapować i przetwarzać adresy URL, które obejmują dynamiczną liczbę znaków „/”?
- P. Jak zapisać obiekty FaceMessage po przekierowaniu lub ładnym: przekierowaniu?
- P. Czy PrettyFaces działa na serwerze IBM WebSphere?
- Wesprzyj nas - Darowizna
Rozwiązanie open-source / url / # {rewriting} dla serwletów, JSF i Java EE
PrettyFaces to biblioteka do przepisywania adresów URL OpenSource z rozszerzoną obsługą JavaServer Faces - JSF 1.1, 1.2 i 2.0 - umożliwiająca tworzenie ładnych adresów URL z możliwością dodawania zakładek. PrettyFaces elegancko rozwiązuje problem „RESTful URL”, w tym takie funkcje, jak: operacje ładowania strony, bezproblemowa integracja z nawigacją po twarzach, dynamiczne przypisywanie identyfikatorów, analizowanie parametrów zarządzanych i bezkonfiguracyjna zgodność z innymi strukturami WWW. Spójrz na funkcje »
SEO i spójność:
Każda firma wie, jak ważna może być optymalizacja dla wyszukiwarek. PrettyFaces umożliwia korzystanie z adresów URL przyjaznych dla SEO i lepsze wrażenia klientów. Daj swojej stronie jednolite, dobrze zrozumiane uczucie, od paska adresu po przycisk Kup.Zacznij, to proste! (3 kroki)
Zaleca się, ale nie wymagane, usuwanie innych narzędzi do przepisywania URL z aplikacji przed użyciem PrettyFaces i / lub [[Rewrite]]. Jeśli zdecydujesz się pozostawić je na miejscu, dziwne rzeczy mogą ci się przytrafić, bądź ostrożny.
Dołącz do nas na #ocpsoft - nasz kanał na irc.freenode.net. Ponadto możesz uczestniczyć w spotkaniu dev, co [[Calendar | Monday at 1pm EST]]. Dołącz również do dyskusji na naszej stronie lista adresów e-mail dev .
1. Dołącz PrettyFaces w swoim projekcie
Możesz użyć Maven (zalecane), aby dołączyć PrettyFaces do swojego projektu, lub możesz pobrać plik ZIP dystrybucji bezpośrednio.
Jeśli aktualizujesz z PrettyFaces 3.x, pamiętaj, że wszystkie funkcje są kompatybilne wstecz, ale możesz przejrzeć przewodnik migracji aby dowiedzieć się o nowych funkcjach udostępnionych w najnowszych wersjach. <! - dla JSF 2.x -> <zależność> <groupId> org.ocpsoft.rewrite </groupId> <artifactId> rewrite-servlet </artifactId> <wersja> 3.4.1.Final </version> < / dependency> <zależność> <groupId> org.ocpsoft.rewrite </groupId> <artifactId> rewrite-config-prettyfaces </artifactId> <wersja> 3.4.1.Final </version> </dependency> (jeśli używasz starsza wersja JSF, będziesz chciał użyć zamiast tego zależność PrettyFaces JSF 1.x: ) <! - dla JSF 1.2.x (wiemy, że numer wersji jest mylący. przepraszam!) -> <dependency> <groupId> com.ocpsoft </groupId> <artifactId> prettyfaces-jsf12 </artifactId> <wersja> 3.3.3 </version> </dependency>2. Utwórz pretty-config.xml
Tutaj tworzysz mapowania adresów URL między zewnętrznymi wzorcami adresów URL a wewnętrznymi plikami widoku, serwletami i innymi zasobami. Pamiętaj, aby zastąpić poniższe mapowanie mapowaniem pasującym do twojej aplikacji.
/WEB-INF/pretty-config.xml <pretty-config xmlns = "http://ocpsoft.org/schema/rewrite-config-prettyfaces" xmlns: xsi = "http://www.w3.org/2001/ XMLSchema-instance "xsi: schemaLocation =" http://ocpsoft.org/schema/rewrite-config-prettyfaces http://ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd "> <url- mapping id = "login"> <wzorzec = "/ login" /> <view-id value = "/ legacy / user / login.jsp" /> </url-mapping> </pretty-config>Dodaj mapowania do swojej konfiguracji
Ta część zależy wyłącznie od Ciebie! Musisz dowiedzieć się, które adresy URL w aplikacji chcesz „udoskonalić” - sprawdź szczegóły [[PrettyFaces Docs | dokumentacja]], aby dowiedzieć się, jak w pełni wykorzystać system mapowania adresów URL PrettyFaces.
Dodatkowo, sprawdź Przepisz przykłady lub instrukcja obsługi aby dowiedzieć się więcej o [[Rewrite]] i potężnych opcjach, które oferuje poza modułem konfiguracyjnym PrettyFaces.
<url-mapping id = "view-user"> <pattern value = "/ user / # {username}" /> <view-id value = "/ user / view.xhtml" /> </url-mapping> < ! - Mapy „/ user / # {username}” na adres URL „/user/view.xhtml?username=value” ->3. Uruchom aplikację!
Teraz powinieneś być gotowy do pracy! PrettyFaces jest zainstalowany, a pierwsze mapowanie URL zostało utworzone. Jeśli wszystko zostało wykonane poprawnie, powinieneś zobaczyć dziennik PrettyFaces zawierający komunikat potwierdzający, że konfiguracja powiodła się. INFO [org.ocpsoft.rewrite.servlet.RewriteFilter] RewriteFilter uruchamianie ... ... INFO [org.ocpsoft.rewrite.servlet.RewriteFilter] Loaded [] org.ocpsoft.rewrite.config.ConfigurationProvider [org.ocpsoft. rewrite.prettyfaces.PrettyFacesRewriteConfigurationProvider <1>] INFO [org.ocpsoft.rewrite.servlet.RewriteFilter] RewriteFilter zainicjowany.Dokumentacja (Potrzebujesz pomocy?)
Zadaj pytanie w fora , zobacz dokumentacja , FAQ lub pobierz źródło !
- Przepisywanie adresów URL - Zastąp brzydkie adresy URL: „/faces/page.jsf” ładnymi, przyjaznymi dla SEO ludzkimi adresami URL: „/ zoptymalizowane / strona /”; Przeglądarka klienta nigdy nie widzi oryginalnych adresów URL, nawet w źródłowym HTML
- Dynamiczne identyfikatory widoku - teraz z dynamicznym odwzorowaniem identyfikatorów adresów URL (poprzez wyrażenia metody El,) można wyświetlać różne widoki na podstawie warunków wykonywania, skutecznie rozłączając adres URL z widoku JSF.
- Akcje ładowania strony - Wywołaj jedną lub więcej metod akcji, na jednej lub więcej fazach, przed renderowaniem widoku.
- Analiza parametrów zarządzanych - parametry HTTP analizowane z adresów URL są przechowywane w zarządzanych komponentach bean, po prostu pobierz referencję do komponentu bean parametru, aby uzyskać łatwy dostęp z innych klas Java.
- Nawigacja według ID - Zdefiniuj identyfikatory stron w jednym miejscu, odwoływaj się do nich w metodach akcji i komponentach, używając standardowych technik nawigacji JSF.
- Zintegrowane sprawdzanie poprawności - W przypadku parametrów URL i zapytań można ponownie wykorzystać istniejące obiekty walidatora JSF.
- Łatwa konfiguracja - wymaga absolutnie minimalnej konfiguracji; może być włączone za pomocą XML lub adnotacji.
Czym różni się PrettyFaces:
Wyświetl prezentację pokazu slajdów dlaczego przepisywanie URL jest ważne lub krótki przegląd problemy rozwiązywane przez PrettyFaces .Dlaczego nie spróbuj PrettyFaces teraz?.
P. Czy mogę używać PrettyFaces do obsługi przepisywania adresów URL dla innych zasobów na moim serwerze?
A. Tak. PrettyFaces nadal wymaga do działania skonfigurowanej instancji JSF, ale można jej użyć do odwzorowania adresu URL na dowolny zasób w kontenerze serwletów - bez wywoływania FaceServlet. Wartości będą wstrzykiwane do fasoli JSF jak zwykle, ale metody akcji PrettyFaces nie będą wyzwalane (ponieważ żaden cykl życia JSF nie jest wykonywany dla żądań innych niż Face).
Na przykład:
<pretty-config xmlns = "http://ocpsoft.org/schema/rewrite-config-prettyfaces" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation = "http : //ocpsoft.org/schema/rewrite-config-prettyfaces http://ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd "> <url-mapping id =" login "> <wartość wzorca = "/ login" /> <view-id value = "/ legacy / user / login.jsp" /> <! - Id bez widoku JSF -> </url-mapping> <url-mapping id = "zarejestruj się "> <wartość wzorca =" / register "/> <view-id value =" / faces / user / register.jsf "/> <! - Id widoku JSF -> </url-mapping> </ pretty- config>P. Dlaczego moje komponenty Tomahawk / MyFaces lub inne dodatki innych firm przerywają działanie, gdy używam PrettyFaces?
O. Ponieważ przechwytuje HttpRequest mapowane przez PrettyFaces, a następnie przekazuje te żądania do JSF, konieczne jest włączenie dodatkowych filtrów między PrettyFaces i JSF do nasłuchiwania Servlet Forwards. Odbywa się to w deskryptorze wdrażania web.xml przez dodanie następujących elementów dyspozytora do dowolnych potrzebnych filtrów:
Na przykład:
<mapowanie filtra> <nazwa_filtru> springSecurityFilterChain </filter-name> <url-pattern> / * </url-pattern> <dispatcher> FORWARD </dispatcher> <dispatcher> REQUEST </dispatcher> </ filter- mapowanie>P. Dlaczego podczas korzystania z MyFaces otrzymuję NullPointerException, gdy próbuję użyć normalnej nawigacji twarzą?
O. Niektóre wersje MyFaces nie są całkowicie zgodne ze specyfikacją JSF, dlatego ViewRoot ma wartość null, gdy żądanie jest przetwarzane. Tam jest łatka / obejście , które można dodać, aby rozwiązać ten problem. Musisz dodać ten ViewHandler do twojego faces-config.xml.
P. Czy mogę skonfigurować PrettyFaces za pomocą Adnotacji?
A. Tak! Dzięki Christianowi Kapoltethowi PrettyFaces ma obsługę adnotacji od wersji 3.0.2-SNAPSHOT
P. Jak włączyć rejestrowanie, aby móc stwierdzić, co się naprawdę dzieje?
A. Utwórz lub zaktualizuj plik log4j.properties o następujące wartości:
### bezpośrednie komunikaty dziennika na standardowe wyjście ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =% d {ABSOLUTE}% 5p% c {1}:% L -% m% n log4j.rootLogger = warn, stdout ### Log dla OCPsoft log4j.logger.com.ocpsoft = informacjeP. Czy mogę mapować i przetwarzać adresy URL, które obejmują dynamiczną liczbę znaków „/”?
A. Tak, przeczytaj sekcja 3.4 doktorów.
P. Jak zapisać obiekty FaceMessage po przekierowaniu lub ładnym: przekierowaniu?
A. Musisz skonfigurować opcjonalny MultiPageMessagesSupport PhaseListener (lub coś podobnego)
<? xml version = '1.0' encoding = 'UTF-8'?> <faces-config xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http: // www .w3.org / 2001 / XMLSchema-instance "xsi: schemaLocation =" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0 .xsd "version =" 1.2 "> <lifecycle> <phase-listener> com.ocpsoft.pretty.application.MultiPageMessagesSupport </phase-listener> </lifecycle> </faces-config> Zobacz Ten artykuł pełne wyjaśnienie, jak to działa.P. Czy PrettyFaces działa na serwerze IBM WebSphere?
Odp .: Tak, ale websphere wymaga niestandardowego ustawienia, aby zachowywać się jak rozsądny serwer.
Wesprzyj nas - Darowizna
Witamy darowizny kontynuować zapewnianie domu projektom open source OCPsoft. Lub, jeśli podoba Ci się ten projekt, możesz stać się zasilany przez PrettyFaces . Wszystkie darowizny idą bezpośrednio na pokrycie kosztów hostingu.Dlaczego moje komponenty Tomahawk / MyFaces lub inne dodatki innych firm przerywają działanie, gdy używam PrettyFaces?Dlaczego podczas korzystania z MyFaces otrzymuję NullPointerException, gdy próbuję użyć normalnej nawigacji twarzą?
Czy mogę skonfigurować PrettyFaces za pomocą Adnotacji?
Jak włączyć rejestrowanie, aby móc stwierdzić, co się naprawdę dzieje?
Czy mogę mapować i przetwarzać adresy URL, które obejmują dynamiczną liczbę znaków „/”?
Jak zapisać obiekty FaceMessage po przekierowaniu lub ładnym: przekierowaniu?
Czy PrettyFaces działa na serwerze IBM WebSphere?
Xhtml?
Potrzebujesz pomocy?
Dlaczego nie spróbuj PrettyFaces teraz?