1
我一直在玩Seam(2.0.2.SP1)几周,并且我掌握了大部分基础知识,但我还没有拿出一个体面的解决以下问题。Seam/JSF中的验证失败导航
假设我有一个表格/foo.xhtml
,其重写规则使得像/foo.seam?id=<fooId>
这样的URL转换为/foo/<fooId>
。表单上有commandButton
,其行动为#{fooHome.update}
。我也有/foo.page.xml
导航规则,一个成功的POST之后重定向到一个不错的,书签友好GET:
<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/<fooId>
的GET请求,而不是POST到/foo
?
我试着在fooHome
中滚动我自己的验证方法,返回一个“失败”的结果,但我真的不希望无效数据越过验证阶段(从而进入当前对话)。
我的确在使用UrlRewrite,但似乎无法构建这样的出站规则。 使用当前视图(/ foo)作为操作,而不是重写的URL(/ foo/)。除非我错过了某些东西(完全可能),否则我看不到将转换为出站规则的方法。 –
2008-10-13 20:11:22