Невозможно выполнить сопоставление URL-адресов с помощью Pretty Faces 3.3.2, JSF 2.0, JBoss 6.1.0 final

У меня проблема с сопоставлением URL-адресов Pretty Faces.

У меня есть один управляемый компонент со следующими сопоставлениями:

@ManagedBean
@RequestScoped
@URLMapping(id = "search", pattern = "/search/", viewId = "/search/search.xhtml")

И он отлично работает, когда я перехожу к http://ip/search/?keywords=word.

Однако когда я пытаюсь изменить шаблон сопоставления, я получаю сообщение об ошибке.

@ManagedBean
@RequestScoped
@URLMapping(id = "search", pattern = "/search", viewId = "/search/search.xhtml")

Я ожидаю, что http://ip/search?keywords=word даст тот же ответ, что и ссылка выше, но, к сожалению, я получаю Ошибка 404 HTTP.

search.xhtml находится в папке WebContent / search / веб-проекта, развернутого на JBoss 6.1.0 final.

Интересно то, что когда я использую JBoss 5.1.0 и Pretty Faces 3.2.0 и JSF 1.2, сопоставление работает нормально (конечно, в этом случае все сопоставления выполняются через конфигурацию XML).

Буду признателен за любой ответ, спасибо!


person CyberMJ    schedule 11.11.2011    source источник


Ответы (2)


Вы пробовали PrettyFaces версии 3.3.2? Там были исправлены некоторые ошибки. Кроме того, пробовали ли вы полностью обновить кеш страницы и браузера? Иногда перенаправления кешируются браузером.

Кроме того, если еще хуже, я предлагаю отладить com.ocpsoft.pretty.faces.PrettyFilter и посмотреть, что происходит внутри.

Также убедитесь, что у вас нет другой конфигурации перезаписи URL, которая могла бы повлиять на сопоставление, например, добавление косой черты в конце или что-то в этом роде.

person Lincoln    schedule 25.11.2011
comment
Я использую версию 3.3.2, и она не работает, но с версией 3.2.0 работает нормально. - person CyberMJ; 20.12.2011
comment
Не могли бы вы взглянуть на мой ответ. Возможно, это ошибка в Pretty Filter. Tnx! - person CyberMJ; 11.01.2012

Существует конфликт между именем папки, в которой хранится файл .xhtml, и значением pattern, поэтому, если имя папки совпадает со значением шаблона, отображение не работает.

В моем случае мне пришлось изменить имя папки search на search_pages, и отображение начало работать нормально - теперь можно посетить http: // ip : port / search? keywords = keyword и для получения подходящих результатов.

Я не знаю, предполагается ли такое поведение для Pretty Filter, но для меня это выглядит немного странно.

person CyberMJ    schedule 11.01.2012
comment
Извините, по какой-то причине SO перестала присылать мне уведомления, поэтому я не видел ваших ответов до сих пор :( Рад, что вы это поняли! - person Lincoln; 29.01.2012