Перенаправление интернационализации шва

Всем доброго вечера.

Есть ли стандартный способ перенаправления / перезаписи определенного URL-адреса на другой?

Представьте, что пользователь получает доступ к следующему представлению: http://www.something.com/us/download.xhtml?id=2

Я хочу установить языковой стандарт из предыдущего представления и перенаправить на http://www.something.com/download.xhtml?id=2

<page view-id="/us/download.xhtml*" action="<action to set the locale>"> <navigation> <redirect view-id="#{facesContext.viewRoot.viewId}" /> </navigation> </page>

Ну, в основном, я хочу установить языковой стандарт (пример: us), передать viewId /us/download.xhtml и перенаправить на viewId без ссылки на языковой стандарт.

Спасибо


person João Madureira Pires    schedule 12.01.2010    source источник
comment
Если вы добились своей цели, поделитесь ею с нами   -  person Arthur Ronald    schedule 13.01.2010


Ответы (2)


Используйте фильтр, прослушивающий /*, который извлекает языковой стандарт из URL-адреса и перенаправляет запрос на новый URL-адрес без префикса языкового стандарта. Вам действительно не следует выполнять перенаправление, URL-адрес с локалью будет потерян, и это очень плохо для SEO, потому что тогда вы предоставите несколько содержимого за одним и тем же URL-адресом GET, в то время как GET должен быть идемпотентным. Это также сделало бы локализованную страницу недоступной для закладок. Просто перешлите запрос.

person BalusC    schedule 13.01.2010

Вам следует подумать об использовании перезаписи URL-адресов PrettyFaces, у них есть <rewrite match="oldurl" substitute="newurl" /> функция, которая позволит вам сделать это в в дополнение к отображению красивых URL-адресов, таких как /login, для замены стандартных URL-адресов, таких как /faces/login.jsf.

<url-mapping id="store"> <pattern value="/store/" /> <view-id>/faces/shop/store.jsf</view-id> </url-mapping>

Документы по функции перезаписи: Справочное руководство

person Lincoln    schedule 18.08.2010