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

* *

Красивые 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 , Все пожертвования идут напрямую, чтобы компенсировать наши расходы на хостинг.

Реклама

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

Агентство по эскорт услугам
У многих слово «эскорт» ассоциируется с элитным сопровождением, дорогими машинами и длинноногими красавицами-моделями, которых богатые владельцы крупных фирм берут с собой на светские рауты в качестве

Агентство недвижемоти
Здравствуйте товарищи! С вами Саша Борисов! В своей прошлой статье « Пишу, пишу, а посетителей все нет и нет» я говорил о том, как писать статьи правильно, соблюдая все базовые правила seo

Франшиза страхового агентства
К Вашему вниманию франшиза страхового агентства — Точка Страхования. Основными направлениями деятельности являются реализация полисов ОСАГО и КАСКО. Что входит в франшизу• Техническая поддержка наших

Детективные агентства киева
На страницах нашего сайта Вы найдете много полезной информации, которая необходима в повседневной жизни. Вы имеете возможность обратиться к нам, оставив заявку либо позвонить по одному из номеров, указанных

Федеральное агентство по техническому регулированию
В 2003 году, 1 июля, вступил в действие ФЗ, определяющий основы технического регулирования. В рамках закона создана новая система установления норм для производственных процессов, продукции, услуг и работ.

Btl агентство полного цикла
Нередко рекламные услуги заказываются одновременно у нескольких поставщиков: одна фирма выполняет полиграфию, другая проводит исследование рынка, третья следит за общей успешностью проводимых мероприятий.

Русское агентство новостей
Русское Агентство Новостей (РуАН) создано, как альтернатива разнузданному, повсеместному шабашу, развёрнутому в СМИ равнодушными, недалёкими, продажными и недружественными к нормальным людям персонажами,

Мегаполис сервис агентство недвижимости
Агентство недвижимости «Мегаполис Сервис», предлагает все виды риэлторских услуг на рынке недвижимости. Купля-продажа, обмен квартир, домов, комнат, земельных участков, коттеджей, коммерческой недвижимости.

Сдать квартиру через агентство
Почему стоит держаться подальше от агентств недвижимости Что бы ответить на первый вопрос и понять почему идея сдать квартиру через агентство не самая блестящая, мне придется процитировать книгу “6

Агентство по подбору домашнего персонала
Проблема поиска хорошей няни, надежной помощницы по хозяйству, квалифицированного репетитора для ребенка или сиделки для пожилого родственника знакома многим людям. Избавить их от множества хлопот по


Реклама

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

Реклама

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

Реклама