나는 몇 주 동안 Seam (2.0.2.SP1)을 가지고 놀았으며, 대부분의 기본 사항이 내려지지 만 괜찮 았던 점이 없다. 다음에 대한 해결책.Seam/JSF의 유효성 검사 실패에 대한 내비게이션
에 양식이 있고 /foo.seam?id=<fooId>
과 같은 URL이 /foo/<fooId>
으로 변환되는 다시 쓰기 규칙이 있다고 가정합니다. 양식에 의 commandButton
이 있습니다. 또한 성공적인 POST 후 다시 좋은, 북마크 친화적 인 GET에 리디렉션 /foo.page.xml
의 탐색 규칙이 :
<navigation from-action="#{fooHome.update}">
<rule if-outcome="updated">
<redirect view-id="/foo.xhtml">
<param name="id" value="#{fooHome.instance.id}"/>
</redirect>
</rule>
</navigation>
유효성 검사 오류가있는 탐색 규칙을 건너 얻고, 포인트, 발생하면 문제는 나는 POST 후 /foo
에있다.
내 질문 : 유효성 검사 오류를 리디렉션 할 수있는 방법이 있습니까? /foo
에 대한 POST 대신 /foo/<fooId>
에 대한 GET 요청이 끝납니다.
fooHome
에 내 자신의 유효성 검사 방법을 적용하여 "실패한"결과를 반환했지만 유효하지 않은 데이터가 유효성 검사 단계를 지나서 현재 대화에 들어가기를 원하지 않습니다.
실제로 UrlRewrite를 사용하고 있지만 아웃 바운드 규칙을 구성 할 수 없습니다. 은 다시 작성된 URL (/ foo/)이 아닌 현재보기 (/ foo)를 작업으로 사용합니다. 내가 완전히 무언가를 놓치지 않는 한, 을 아웃 바운드 규칙에 넣는 방법이 보이지 않습니다. –
결국, 나는 검증을 실패했을 때와 동일한 관점을 유지하기 위해 양식을 수정했습니다. 원래 내가 원했던 것을 할 수있는 방법이 있다면 여전히 궁금하지만, 지금은 효과가있을 것입니다. –