Ошибки JSF и перенаправление - PullRequest
0 голосов
/ 19 марта 2012

У меня есть страница, которая показывает элемент по его идентификатору: item.xhtml?id=xxx

Если идентификатор не указан, отображается список всех элементов.

На этой же странице естьформа, используемая для обновления полей элемента.Используя <f:viewParam> и скрытый ввод, я могу снова показать item.xhtml?id=xxx при отправке формы.Но если возникает ошибка проверки (я использую Bean Validation), появляется item.xhtml со списком всех элементов и сообщением об ошибке.Есть ли способ перенаправить, даже если происходит ошибка?

PS: почему jsf забирает строку запроса из URL?Я имею в виду, что такого рода проблем не было бы, если бы отображаемое действие формы было /context/page.xhtml?query=string вместо /context/page.xhtml.Где я не прав?

1 Ответ

0 голосов
/ 19 марта 2012

Поместите управляемый компонент в область просмотра с помощью @ViewScoped.Если вам действительно нужно, чтобы ваш бин по каким-то причинам был ограничен запросом, тогда вам нужно передать параметр <f:param>.

<h:commandButton value="Submit" action="#{bean.submit}">
    <f:param name="paramName" value="#{param.paramName}" />
</h:commandButton>

Что касается URL-адреса действия формы, то это сделано специально.Вы можете переопределить это, предоставив собственную реализацию ViewHandler, в которой вы соответственно переопределите метод getActionURL().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...