Это потому, что вы используете POST вместо GET для постраничной навигации и JSF по умолчанию отправляет в тот же самый вид, который вы используете <h:form>
.Использование POST для навигации по страницам в любом случае является очень плохим подходом.Это не только не удобно для пользователя (это не закладки и не сбивает с толку), но и не оптимизировано для SEO (поисковые роботы не выполняют <form>
действий).
Чтобы решить эту проблему, вы должны прекратить использовать <h:commandLink>
для постраничной навигации.Вместо этого используйте <h:link>
.
<h:link value="Go to next page" outcome="nextpage" />
Это просто отобразит
<a href="/contextpath/nextpage.xhtml">Go to next page</a>
, который отлично подходит для закладок, удобен для пользователя и оптимизирован для SEO.
Когда выпереходя на другую страницу в результате реальной отправки формы POST, я бы также заменил ее возвратом null
или void
и просто отобразил бы результат / сообщения условно в том же виде.Или, если результат должен быть добавлен в закладки (например, результаты поиска), вам следует использовать обычные ссылки или просто <form>
вместо <h:form>
и использовать <f:viewParam>
в целевом представлении.
См. Также: