Навигация при сбое проверки в Seam / JSF - PullRequest
1 голос
/ 09 октября 2008

Я играл с 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, возвращая «неудачный» результат, но я не хочу, чтобы недействительные данные проходили этап проверки (и, следовательно, в текущем разговоре).

1 Ответ

1 голос
/ 12 октября 2008

Обычно вы будете отображать то же представление при сбое проверки, а не перенаправлять. Предполагая, что вы используете UrlRewrite для правил перезаписи, возможно, вы можете использовать outbound-rule , чтобы URL / foo / {fooId} все еще отображался в этом случае.

...