Например, у меня есть класс Статья с методами getTitle ()
и getContent ()
.
У меня также есть ArticlesService с методом getAllArticles ()
. Как создать список ссылок с понятными именами (сформированный с #{article.title}
)? Как:
http://mysiteaddress.com/article/first-article-title
http://mysiteaddress.com/article/how-to-make-links-in-jsf
.. или что-то подобное.
Я могу создать ссылки со всей необходимой функциональностью с <h:commandLink>
, но я не знаю, как сделать хороший 'href' для него: это всегда имеет href '# '.
Я могу создать хорошие ссылки с <h:outputLink>
но я не знаю, как добавить необходимую функциональность к нему.
В jsp я создал свой собственный фронтальный контроллер, который проанализировал URL от запросов и затем выполнил перенаправление к соответствующей jsp-странице.
Как достигнуть той же функциональности в JSF?
Если это предназначено для улучшения существующего приложения, то вам в основном понадобится Фильтр
, который обнаруживает «грязные» и «дружественные» URL-адреса. Когда он обнаруживает «грязный» URL, он должен перенаправить запрос на «дружественный» URL с помощью HttpServletResponse # sendRedirect ()
. Когда он обнаруживает «дружественный» URL, он должен перенаправить запрос на «грязный» URL с помощью RequestDispatcher # forward ()
. Пример можно найти в этом связанном вопросе: Как использовать фильтр сервлетов в Java для изменения URL-адреса входящего запроса сервлета?
Кроме того, вам также понадобится пользовательский ViewHandler
для создания желаемого "удобный" URL для JSF
,
и т. Д. Пример можно найти здесь: Динамический каталог в веб-приложении Java EE .
Если это новое приложение или приложение, которое открыто для изменений, вы можете рассмотреть любое из существующие красивые библиотеки URL вместо того, чтобы изобретать колесо:
pretty-config.xml
. Эта библиотека полезна, если вы хотите полностью изменить URL-адреса и / или хотите настроить перенаправление со старых URL-адресов на новые. web.xml
параметр контекста. Он также поддерживает «MultiViews», посредством чего параметры пути могут декларативно вводиться в управляемые компоненты. Например Вы пробовали PrettyFaces ?
Любой бизнес знает, насколько важной может быть поисковая оптимизация для продаж. PrettyFaces позволяет создавать оптимизированные для SEO URL и улучшать качество обслуживания клиентов. Придайте своему сайту единообразный, понятный вид, от адресной строки до кнопки покупки.