* РБК — новости

* *

Красивые URL-адреса для JavaServer Faces и Java-серверов приложений

  1. Решение с открытым исходным кодом / url / # {rewriting} для сервлетов, JSF и Java EE
  2. SEO и последовательность:
  3. 1. Включите PrettyFaces в свой проект
  4. 2. Создайте pretty-config.xml
  5. Добавьте сопоставления в вашу конфигурацию
  6. 3. Запустите ваше приложение!
  7. Что отличает PrettyFaces:
  8. Почему бы и нет попробуйте PrettyFaces сейчас?.
  9. В. Почему мои компоненты Tomahawk / MyFaces или другие сторонние дополнения ломаются, когда я использую PrettyFaces?
  10. В. Почему при использовании MyFaces я получаю исключение NullPointerException при попытке использовать...
  11. В. Могу ли я настроить PrettyFaces с помощью аннотаций?
  12. В. Как включить ведение журнала, чтобы я мог сказать, что на самом деле происходит?
  13. В. Могу ли я отобразить и обработать URL-адреса, которые охватывают динамическое число символов «/»?
  14. Q. Как сохранить объекты FacesMessage после выполнения перенаправления или довольно перенаправления?
  15. В. Работает ли PrettyFaces в IBM WebSphere?
  16. Поддержите нас - Пожертвуйте

Решение с открытым исходным кодом / url / # {rewriting} для сервлетов, JSF и Java EE

PrettyFaces - это библиотека для перезаписи URL-адресов с расширенной поддержкой JavaServer Faces - JSF 1.1, 1.2 и 2.0, позволяющая создавать красивые URL-адреса с возможностью закладок. PrettyFaces элегантно решает проблему «RESTful URL», включая такие функции, как: действия по загрузке страницы, плавная интеграция с навигацией по граням, динамическое назначение идентификатора вида, анализ управляемых параметров и совместимость без конфигурации с другими веб-платформами. Посмотрите на особенности »

SEO и последовательность:

Любой бизнес знает, насколько важна поисковая оптимизация для продаж. PrettyFaces позволяет оптимизировать SEO-адреса и улучшить качество обслуживания клиентов. Придайте своему сайту единообразное, хорошо понятное ощущение - от адресной строки до кнопки «Купить».

Начните, это просто! (3 шага)

Рекомендуется, но не обязательно удалять другие инструменты перезаписи URL из вашего приложения перед использованием PrettyFaces и / или [[Rewrite]]. Если вы решите оставить их на месте, с вами могут случиться странные вещи, будьте осторожны.

Присоединяйтесь к нам в #ocpsoft - наш канал на irc.freenode.net. Кроме того, вы можете посещать собрание разработчиков каждый [[Календарь | Понедельник в 13:00 EST]]. Также, пожалуйста, присоединяйтесь к обсуждению на нашем список рассылки разработчиков ,

1. Включите PrettyFaces в свой проект

Вы можете использовать Maven (рекомендуется), чтобы включить PrettyFaces в свой проект, или вы можете напрямую загрузить ZIP-файл дистрибутива.

Если вы обновляете с версии PrettyFaces 3.x, обратите внимание, что все функции обратно совместимы, но вы можете просмотреть руководство по миграции чтобы узнать о новых функциях, доступных в последних выпусках. <! - для JSF 2.x -> <зависимость> <groupId> org.ocpsoft.rewrite </ groupId> <artifactId> переписать сервлет </ artifactId> <версия> 3.4.1.Final </ версия> < / зависимость> <зависимость> <groupId> org.ocpsoft.rewrite </ groupId> <artifactId> rewrite-config-prettyfaces </ artifactId> <версия> 3.4.1.Final </ version> </ зависимость> (если вы используете более старая версия JSF, вы захотите использовать устаревшая зависимость PrettyFaces JSF 1.x: ) <! - для JSF 1.2.x (да, мы знаем, что номер версии сбивает с толку. извините!) -> <зависимость> <groupId> com.ocpsoft </ groupId> <artifactId> prettyfaces-jsf12 </ artifactId> <версия> 3.3.3 </ версия> </ зависимость>

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-instance "xsi: schemaLocation =" http://ocpsoft.org/schema/rewrite-config-prettyfaces http://ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd "> <url- mapping id = "login"> <pattern value = "/ 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"> <pattern value = "/ user / # {username}" /> <view-id value = "/ user / view.xhtml" /> </ url-mapping> < ! - сопоставляет "/ user / # {username}" с URL-адресом "/user/view.xhtml?username=value" ->

3. Запустите ваше приложение!

Теперь вы должны быть готовы к работе! PrettyFaces установлена, и ваше первое сопоставление URL создано. Если все сделано правильно, вы должны увидеть в журнале PrettyFaces сообщение, подтверждающее, что установка прошла успешно. INFO [org.ocpsoft.rewrite.servlet.RewriteFilter] 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 инициализирован.

Документация (нужна помощь?)

Задайте вопрос в форумы , просмотреть документация , Часто задаваемые вопросы или получить источник !


  1. Перезапись URL - замените уродливые URL: «/faces/page.jsf» на красивые, оптимизированные для SEO, человеческие URL: «/ optimized / page /»; Клиентский браузер никогда не видит ваши оригинальные URL, даже в исходном HTML
  2. Динамические идентификаторы представлений. Теперь с помощью динамического сопоставления идентификаторов представлений для URL-адресов (с помощью выражений метода El) вы можете отображать различные представления в зависимости от условий выполнения, эффективно отсоединяя URL-адрес от представления JSF.
  3. Действия при загрузке страницы - вызовите один или несколько action-методов на одном или нескольких этапах перед отображением представления.
  4. Синтаксический анализ управляемых параметров - параметры HTTP, проанализированные по URL-адресам, хранятся в управляемых bean-компонентах, просто получите ссылку на ваш bean-компонент параметров для быстрого доступа из других классов Java.
  5. Навигация по идентификатору. Определите идентификаторы своей страницы в одном месте, легко ссылайтесь на них в методах действий и компонентах, используя стандартные методы навигации JSF.
  6. Интегрированная проверка - для URL и параметров запроса, может повторно использовать существующие объекты проверки JSF.
  7. Простота настройки - требуется абсолютно минимальная конфигурация; может быть включен с использованием XML или аннотаций.

Что отличает PrettyFaces:

Посмотреть слайд-презентацию на почему перезапись URL важна или краткий обзор проблемы PrettyFaces решает ,

Почему бы и нет попробуйте PrettyFaces сейчас?.

  1. В. Могу ли я использовать PrettyFaces для обработки перезаписи URL для других ресурсов на моем сервере?

    А. Да. Для функционирования PrettyFaces по-прежнему требуется настроенный экземпляр JSF, но его можно использовать для сопоставления URL-адреса с любым ресурсом в контейнере сервлетов - без вызова FacesServlet. Значения будут вводиться в bean-компоненты 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" /> <значение id-идентификатора = "/ legacy / user / login.jsp" /> <! - Идентификатор не-JSF-представления -> </ url-mapping> <url-mapping id = "register "> <pattern value =" / register "/> <view-id value =" /face / user / register.jsf "/> <! - Id View Id -> </ url-mapping> </ pretty- конфигурации>
  2. В. Почему мои компоненты Tomahawk / MyFaces или другие сторонние дополнения ломаются, когда я использую PrettyFaces?

    О. Поскольку PrettyFaces перехватывает сопоставленные HttpRequests, а затем направляет эти запросы в JSF, необходимо включить любые дополнительные фильтры между PrettyFaces и JSF для прослушивания переадресации сервлетов. Это делается в дескрипторе развертывания web.xml путем добавления следующих элементов диспетчера к любым необходимым фильтрам:

    Например:

    <filter-mapping> <filter-name> springSecurityFilterChain </ filter-name> <url-pattern> / * </ url-pattern> <dispatcher> FORWARD </ dispatcher> <dispatcher> REQUEST </ dispatcher> </ filter- отображение>
  3. В. Почему при использовании MyFaces я получаю исключение NullPointerException при попытке использовать обычную навигацию по лицам?

    О. Некоторые версии MyFaces не полностью соответствуют спецификации JSF, поэтому ViewRoot является нулевым при обработке запроса. Eсть патч / обходной путь , который можно добавить, чтобы исправить эту проблему. Вы должны добавить этот ViewHandler к вашему лицу config-xml.

  4. В. Могу ли я настроить PrettyFaces с помощью аннотаций?

    О. Да! Благодаря Christian Kapolteth, PrettyFaces имеет поддержку аннотаций начиная с версии 3.0.2-SNAPSHOT

  5. В. Как включить ведение журнала, чтобы я мог сказать, что на самом деле происходит?

    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 = warn, stdout ### Журнал для OCPsoft log4j.logger.com.ocpsoft = Информация
  6. В. Могу ли я отобразить и обработать URL-адреса, которые охватывают динамическое число символов «/»?

    А. Да, пожалуйста, прочитайте раздел 3.4 из документов.

  7. Q. Как сохранить объекты FacesMessage после выполнения перенаправления или довольно перенаправления?

    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> </face-config> См. Эта статья для полного объяснения того, как это работает.
  8. В. Работает ли PrettyFaces в IBM WebSphere?

    О. Да, но websphere требует пользовательской настройки, чтобы вести себя как нормальный сервер.


Поддержите нас - Пожертвуйте

Мы приветствуем пожертвования продолжать предоставлять дом для проектов с открытым исходным кодом OCPsoft. Или, если вам нравится этот проект, вы можете стать работает на PrettyFaces , Все пожертвования идут напрямую, чтобы компенсировать наши расходы на хостинг.Почему мои компоненты Tomahawk / MyFaces или другие сторонние дополнения ломаются, когда я использую PrettyFaces?
Могу ли я настроить PrettyFaces с помощью аннотаций?
Как включить ведение журнала, чтобы я мог сказать, что на самом деле происходит?
Могу ли я отобразить и обработать URL-адреса, которые охватывают динамическое число символов «/»?
Как сохранить объекты FacesMessage после выполнения перенаправления или довольно перенаправления?
Работает ли PrettyFaces в IBM WebSphere?
Xhtml?
Нужна помощь?
Могу ли я использовать PrettyFaces для обработки перезаписи URL для других ресурсов на моем сервере?
Почему мои компоненты Tomahawk / MyFaces или другие сторонние дополнения ломаются, когда я использую PrettyFaces?

Реклама

Популярные новости


Реклама

Календарь новостей

Реклама

Архив новостей

Реклама