栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

提交后发生验证错误时,请保持p:dialog打开

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

提交后发生验证错误时,请保持p:dialog打开

onsuccess
运行,如果AJAX请求本身是成功的(即有没有网络故障,未捕获的异常等),如果不采取行动方法成功地调用。

给定一个

<p:dialogwidgetVar="testDialog">
,您可以删除
onsuccess
并将其替换为
RequestContext#execute()
内部的PrimeFaces
saveMethod()

if (success) {    RequestContext.getCurrentInstance().execute("PF('testDialog').hide()");}

注意:

PF()
在PrimeFaces 4.0中引入。在较旧的PrimeFaces版本中,您需要
testDialog.hide()
使用。

如果您不想使用特定于视图的脚本使控制器混乱,则可以改用

oncomplete
提供
args
具有布尔
validationFailed
属性的对象:

<p:commandButton ...    oncomplete="if (args &amp;&amp; !args.validationFailed) PF('testDialog').hide()" />

if(args)
检查是必要的,因为发生ajax错误时可能不存在该检查,因此在尝试获取
validationFailed
该错误时会导致新的JS错误。出于此答案中所述的原因,
&amp;
而不是必选,如果需要,可以重构为调用的JS函数,如验证失败时保持
<p:dialog>
打开中所示。
&

如果然而,没有验证错误和操作方法被成功触发,而你仍想保留,比如,因为异常的服务方法调用的对话框打开,这时你可以手动触发

validationFailed
true
通过明确从内支持bean的操作方法调用
FacesContext#validationFailed()
。例如

FacesContext.getCurrentInstance().validationFailed();


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409812.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号