任何方法绕过p:commandButton上的表单验证而不使用o:ignoreValidationFailed或immediate = true

时间:2013-09-21 17:00:14

标签: jsf-2 primefaces omnifaces

我使用参数创建页面表单,告诉他们完成后返回的位置。支持bean是@ReqeuestScoped,包括:

<f:metadata>
    <f:viewParam name="return" value="#{createGroup.paramReturn}" />
</f:metadata>

表单包含带验证器的字段,因此取消按钮必须跳过验证。因此,取消按钮如下所示:

<p:commandButton value="Cancel"
                 action="#{createGroup.doCancel}"
                 immediate="true"
                 />

doCancel()方法的目的是进入Flash范围并使用setParamReturn方法返回值集。

immediate="true"属性的问题在于,其中包含paramReturn变量的Flash存储不再可用。如果有人能告诉我如何解决这个问题,这将是我的首选解决方案。

当然,如果没有immediate="true"属性,则永远不会调用该操作,因为表单无法通过验证。另一种解决方案是以某种其他方式忽略验证。

我查看了OmniFaces <o:ignoreValidationFailed>标签,它似乎做了我想要的,但我不想为这个标签导入整个库。但是,如果没有其他简单的方法可以解决这个问题,那就是我要做的。

0 个答案:

没有答案