Странное поведение Prettyfaces, когда путь содержит два уровня

Я получаю очень странное поведение от Prettyfaces 3.3.3 с JSF 2.1.7.
На самом деле, когда я делаю это сопоставление:

<url-mapping id="admin-home">
    <pattern value="/adminpage" />
    <view-id value="pages/admin/page.jsf" />
</url-mapping>

Все работает, как и ожидалось, и когда я вызываю pretty:admin-home, выполняется перенаправление, и я получаю нужную страницу.
Теперь, когда я использую это сопоставление:

<url-mapping id="admin-home">
    <pattern value="/admin/home" />
    <view-id value="pages/admin/page.jsf" />
</url-mapping>

Обратите внимание, что admin и home разделены. Я получаю ошибку 404 не найден при вызове pretty:admin-home. И это показывает мне, что страница, которая не была найдена:

admin/pages/admin/page.jsp

person Laabidi Raissi    schedule 14.06.2013    source источник


Ответы (1)


Я думаю, это вызвано тем, что ваш viewId не начинается с символа /. Я предполагаю, что когда PrettyFaces перенаправляет запрос на viewId, пересылка отправляется относительно запрошенного URL-адреса. Это объясняет ошибку 404.

Поэтому попробуйте использовать это вместо этого:

<url-mapping id="admin-home">
    <pattern value="/admin/home" />
    <view-id value="/pages/admin/page.jsf" />
</url-mapping>
person chkal    schedule 15.06.2013
comment
Большое спасибо за ваш ответ. - person Laabidi Raissi; 16.06.2013