Я играл с Seam (2.0.2.SP1) в течение нескольких недель, и у меня есть большинство основ, но я не нашел приличного решения для следующее.
Предположим, у меня есть форма на /foo.xhtml
с правилом перезаписи, так что URL-адреса, такие как /foo.seam?id=<fooId>
, преобразуются в /foo/<fooId>
. В форме есть commandButton
с действием #{fooHome.update}
. У меня также есть правило навигации в /foo.page.xml
, которое перенаправляет обратно на красивый, удобный для закладки GET после успешного POST:
<navigation from-action="#{fooHome.update}">
<rule if-outcome="updated">
<redirect view-id="/foo.xhtml">
<param name="id" value="#{fooHome.instance.id}"/>
</redirect>
</rule>
</navigation>
Проблема заключается в том, что возникает ошибка проверки, после чего правила навигации пропускаются, и я в результате получаю /foo
после POST.
Мой вопрос: есть ли способ перенаправить ошибки проверки, поэтому я получаю запрос GET для /foo/<fooId>
вместо POST на /foo
?
Я пытался свернуть свои собственные методы проверки в fooHome
, возвращая «неудачный» результат, но я не хочу, чтобы недействительные данные проходили этап проверки (и, следовательно, в текущем разговоре).