Primefaces/jsf中的条件更新

Cre*_*ure 7 ajax jsf primefaces

首先,所以没有误解,虽然这是与PrimeFaces相同的问题:验证的条件更新我再次问它,因为这个问题答案对我来说是不可接受的,因为虽然它可能已经给了原件海报是他们所要求的解决方法,它并没有真正回答这个问题,而且这种解决方法对我不起作用.

所以,这是我的问题:我如何根据submition的结果有条件地更新primefaces组件?

我有一个组件,在任何情况下都不能更新,除非验证成功并且后端代码已成功执行.(即,如果验证成功但后端存在SQL异常,则组件仍不应更新).

为什么我不能一直更新它?如果逻辑没有成功,它将被更新为单击提交按钮之前的相同内容.因为我不能.这是验证码组件.如果你通过ajax更新它,它就会消失,故事结束.在Primefaces打开了一张票,他们将其关闭,因为无法修复,因为闪存组件不应该用ajax更新.

因此,当我提交表单时,除非逻辑成功,否则我需要单独保留验证码.如果逻辑成功,我需要确保验证码在屏幕外消失.什么是最简单,最干净的方法?

如果这是一个n00b问题,请原谅.我是Primefaces和JSF的新手.

Cag*_*ici 12

RequestContext.getCurrentInstance().update("clientId")
Run Code Online (Sandbox Code Playgroud)

有助于条件更新.

重新尝试

RequestContext.getCurrentInstance().execute("Recaptcha.destroy()");
Run Code Online (Sandbox Code Playgroud)


小智 12

您可以结合使用JavaScript和RemoteCommand:

<p:commandLink action="#{bean.doIt()}" process="@form" update="@none" oncomplete="if(!args.validationFailed){updateMyImportantUI();}" />

<p:remoteCommand name="updateMyImportantUI" process="@this" update=":myImportantID" />     
Run Code Online (Sandbox Code Playgroud)