- Рішення open-source / url / # {rewriting} для Servlet, JSF і Java EE PrettyFaces - бібліотека перезапису...
- Початок, це просто! (3 кроки)
- 1. Включіть у ваш проект PrettyFaces
- 2. Створіть метод pretty-config.xml
- Додайте зіставлення до своєї конфігурації
- 3. Запустіть програму!
- Документація (потрібна допомога?)
- Що робить PrettyFaces різними:
- Чому ні спробуйте PrettyFaces зараз ?.
- Питання: Чому мої компоненти Tomahawk / MyFaces або інші додатки третьої сторони розриваються, коли...
- Питання: Чому, використовуючи MyFaces, я отримую виняток NullPointerException, коли я намагаюся використовувати...
- Q. Чи можна налаштувати PrettyFaces за допомогою анотацій?
- Q. Як увімкнути реєстрацію, щоб визначити, що відбувається?
- Q. Чи можна відображати та обробляти URL-адреси, які охоплюють динамічне число символів "/"?
- Q. Як зберегти об'єкти FacesMessage після виконання переадресації або досить: redirect?
- Q. Чи працює PrettyFaces на WebSphere IBM?
- Підтримайте нас - Пожертвуйте
Рішення open-source / url / # {rewriting} для Servlet, JSF і Java EE
PrettyFaces - бібліотека перезапису URL-адрес OpenSource з розширеною підтримкою JavaServer Faces - JSF 1.1, 1.2 і 2.0 - дозволяє створювати красиві URL-адреси. PrettyFaces елегантно вирішує проблему "RESTful URL", включаючи такі функції, як: завантаження сторінок, безшовна інтеграція з навігацією по обличчях, динамічне призначення ідентифікатора, керований розбір параметрів і сумісність без конфігурації з іншими веб-фреймворками. Погляньте на функції »
SEO та узгодженість:
Будь-який бізнес знає, наскільки важливою може бути пошукова оптимізація для продажу. PrettyFaces дозволяє SEO-дружніх URL-адрес і поліпшення клієнтського досвіду. Дайте своєму сайту рівномірне, добре зрозуміле почуття, від адресного рядка до кнопки покупки.
Початок, це просто! (3 кроки)
Рекомендується, але не потрібно видаляти інші інструменти перезапису URL-адрес з вашої програми перед використанням PrettyFaces та / або [[Rewrite]]. Якщо ви вирішите залишити їх на місці, з вами можуть трапитися дивні речі.
Приєднуйтесь до нас у #ocpsoft - наш канал на irc.freenode.net. Окрім того, запрошуємо Вас відвідати зустріч, кожну [[Календар | понеділок о 1:00 EST]]. Також, будь ласка, приєднуйтесь до дискусії на нашому список розсилки електронної пошти .
1. Включіть у ваш проект PrettyFaces
Ви можете або використовувати Maven (рекомендовано), щоб включити у ваш проект PrettyFaces, або ви можете завантажити файл ZIP з розподілом безпосередньо.
Якщо ви оновлюєтеся з PrettyFaces 3.x, зауважте, що вся функціональність є зворотно сумісною, але ви можете переглянути міграційний посібник щоб дізнатися про нові функції, доступні в останніх випусках. <! - для JSF 2.x -> <залежність> <groupId> org.ocpsoft.rewrite </groupId> <artifactId> перезапису-сервлет </artifactId> <версія> 3.4.1.Фінальна </version> < / dependency> <залежність> <groupId> org.ocpsoft.rewrite </groupId> <artifactId> rewrite-config-prettyfaces </artifactId> <версія> 3.4.1.Завершення </version> </dependency> (якщо ви використовуєте стару версію JSF, ви захочете використовувати Залежність JSF 1.x від попередньої версії PrettyFaces: ) <! - для JSF 1.2.x (так, ми знаємо, що номер версії є заплутаним. вибачте!) -> <залежність> <groupId> com.ocpsoft </groupId> <artifactId> prettyfaces-jsf12 </artifactId> <version> 3.3.3 </version> </dependency>
2. Створіть метод pretty-config.xml
Тут ви можете створити відображення URL-адрес між зовнішніми шаблонами URL-адрес і внутрішніми файлами перегляду, сервлетами та іншими ресурсами. Не забудьте замінити відображення нижче на відображення, яке відповідає вашій програмі.
/WEB-INF/pretty-config.xml <pretty-config xmlns = "http://ocpsoft.org/schema/rewrite-config-prettyfaces" xmlns: xsi = "http://www.w3.org/2001/ Екземпляр XMLSchema "xsi: schemaLocation =" http://ocpsoft.org/schema/rewrite-config-prettyfaces http://ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd "> <url- mapping id = "login"> <шаблон значення = "/ login" /> <view-id value = "/ legacy / user / login.jsp" /> </url-mapping> </pretty-config>
Додайте зіставлення до своєї конфігурації
Ця частина залежить від вас! Потрібно з'ясувати, які URL-адреси у вашій програмі потрібно «prettify», - тому ознайомтеся з документацією [PrettyFaces Docs]], щоб дізнатися, як повністю використовувати систему відображення URL-адрес PrettyFaces.
Крім того, обов'язково перевірте Перепишіть приклади або довідковий посібник щоб дізнатися більше про [[Rewrite]], і про потужні опції, які він пропонує за межами конфігураційного модуля PrettyFaces.
<url-mapping id = "view-user"> <шаблон значення = "/ user / # {ім'я користувача}" /> <view-id value = "/ user / view.xhtml" /> </url-mapping> < ! - Карти "/ user / # {username}" до URL-адреси "/user/view.xhtml?username=value" ->
3. Запустіть програму!
Тепер ви повинні бути готові до роботи! Встановлено PrettyFaces і створено перше URL-відображення. Якщо все було зроблено правильно, ви побачите журнал PrettyFaces, який підтверджує успішне встановлення. ІНФОРМАЦІЯ [org.ocpsoft.rewrite.servlet.RewriteFilter] Починаючи перезапис фільтра ... ... INFO [org.ocpsoft.rewrite.servlet.RewriteFilter] Завантажено [] org.ocpsoft.rewrite.config.ConfigurationProvider [org.ocpsoft. rewrite.prettyfaces.PrettyFacesRewriteConfigurationProvider <1>] INFO [org.ocpsoft.rewrite.servlet.RewriteFilter] RewriteFilter ініціалізовано.
Документація (потрібна допомога?)
Задайте питання в форумах , перегляньте документації , FAQ або отримайте джерело !
- Переписування URL-адрес - Замінити потворні URL-адреси: "/faces/page.jsf" з привабливими для користувача URL-адресами: "/ optimized / page /"; Клієнтський браузер ніколи не бачить ваші вихідні URL-адреси, навіть у вихідному HTML-коді
- Ідентифікатори динамічного подання - тепер з відображенням ідентифікатора динамічного перегляду для URL-адрес (через вирази методу El) ви можете показувати різні види на основі умов виконання, ефективно від'єднавши URL від перегляду JSF.
- Дії з завантаженням сторінок - виклик одного або декількох методів дій на одній або декількох етапах, перш ніж відображати вигляд.
- Розбір керованих параметрів - параметри HTTP, розібрані з URL-адрес, зберігаються в керованих компонентах, просто отримайте посилання на ваш параметр для легкого доступу з інших класів Java.
- Навігація за ідентифікатором - Визначте ідентифікатори сторінок в одному місці, легко посилайтеся на них у методах дій та компонентах, використовуючи стандартні методи навігації JSF.
- Інтегрована перевірка - для URL-адрес і параметрів запитів, здатних повторно використовувати існуючі об'єкти перевірки JSF.
- Легко налаштувати - вимагає абсолютно мінімальної конфігурації; може бути ввімкнено за допомогою XML або анотацій.
Що робить PrettyFaces різними:
Переглянути презентацію слайдшоу чому переписування URL-адрес є важливим або короткий огляд Проблеми PrettyFaces вирішує .
Чому ні спробуйте PrettyFaces зараз ?.
Q. Чи можу я використовувати PrettyFaces для обробки перезапису URL-адрес для інших ресурсів на моєму сервері?
A. Так. PrettyFaces все ще потребує налаштованого екземпляра JSF для функціонування, але його можна використовувати для зіставлення URL-адреси з будь-яким ресурсом у контейнері Servlet - без виклику FacesServlet. Значення будуть вводитися в JSF-квасолі, як звичайно, але методи дії PrettyFaces не запускатимуться (оскільки жодний життєвий цикл JSF не виконується для не-Faces-запитів).
Наприклад:
<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 "> <значення шаблону = "/ login" /> <view-id value = "/ legacy / user / login.jsp" /> <! - Ідентифікатор не JSF -> </url-mapping> <url-mapping id = "register "> <шаблон значення =" / register "/> <view-id value =" / faces / user / register.jsf "/> <! - Id Перегляд JSF -> </url-mapping> </ pretty- config>Питання: Чому мої компоненти Tomahawk / MyFaces або інші додатки третьої сторони розриваються, коли я використовую PrettyFaces?
Оскільки PrettyFaces перехоплює відображені HttpRequests, то перенаправляє ці запити до JSF, необхідно включити будь-які додаткові фільтри між PrettyFaces і JSF для прослуховування Servlet Forwards. Це робиться в дескрипторі розгортання web.xml шляхом додавання наступних елементів диспетчера до будь-яких необхідних фільтрів:
Наприклад:
<filter-mapping> <ім'я фільтра> springSecurityFilterChain </filter-name> <url-pattern> / * </url-pattern> <dispatcher> FORWARD </dispatcher> <dispatcher> REQUEST </dispatcher> </ filter- відображення>Питання: Чому, використовуючи MyFaces, я отримую виняток NullPointerException, коли я намагаюся використовувати звичайні лицарі-навігації?
Деякі версії MyFaces не повністю відповідають специфікації JSF, тому ViewRoot є нульовим, коли запит обробляється. Є патч / обхідний шлях , які можна додати, щоб усунути цю проблему. Ви повинні додати цей ViewHandler до вашого face-config.xml.
Q. Чи можна налаштувати PrettyFaces за допомогою анотацій?
A. Так! Завдяки Christian Kapolteth, PrettyFaces має підтримку анотацій від версії 3.0.2-SNAPSHOT
Q. Як увімкнути реєстрацію, щоб визначити, що відбувається?
A. Створіть або оновіть файл log4j.properties із такими значеннями:
### прямі повідомлення журналу до stdout ### 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 = попереджати, stdout ### Вхід для OCPsoft log4j.logger.com.ocpsoft = info
Q. Чи можна відображати та обробляти URL-адреси, які охоплюють динамічне число символів "/"?
A. Так, будь ласка, прочитайте розділ 3.4 документів.
Q. Як зберегти об'єкти FacesMessage після виконання переадресації або досить: redirect?
A. Необхідно налаштувати додатковий MultiPageMessagesSupport PhaseListener (або щось подібне)
<? xml version = '1.0' encoding = 'UTF-8'?> <face-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> Див. Ця стаття для повного пояснення того, як це працює.
Q. Чи працює PrettyFaces на WebSphere IBM?
Відповідь: Так, але для того, щоб вести себе як розсудливий сервер, websphere вимагає спеціальних налаштувань.
Підтримайте нас - Пожертвуйте
Ми вітаємо пожертвування продовжувати надавати житло проектам з відкритим кодом OCPsoft. Або, якщо вам подобається цей проект, ви можете стати живиться від PrettyFaces . Усі пожертви йдуть безпосередньо для компенсації наших витрат на веб-хостинг.
Чи можна налаштувати PrettyFaces за допомогою анотацій?Як увімкнути реєстрацію, щоб визначити, що відбувається?
Чи можна відображати та обробляти URL-адреси, які охоплюють динамічне число символів "/"?
Як зберегти об'єкти FacesMessage після виконання переадресації або досить: redirect?
Чи працює PrettyFaces на WebSphere IBM?
Xhtml?
Потрібна допомога?
Чому ні спробуйте PrettyFaces зараз ?
Чи можу я використовувати PrettyFaces для обробки перезапису URL-адрес для інших ресурсів на моєму сервері?
Чи можна налаштувати PrettyFaces за допомогою анотацій?