0

我创建带有参数的页面表单,该参数告诉他们完成后返回的位置。支持 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不再可用。如果有人能告诉我如何解决这个问题,这将是我的首选解决方案。

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

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

4

0 回答 0