gpt4 book ai didi

primefaces - primefaces 中的自定义验证

转载 作者:行者123 更新时间:2023-12-01 11:01:09 26 4
gpt4 key购买 nike

我正在使用 primefaces 3.0。我有三个文本字段,其中任何一个都是必需的。我如何在 primefaces 中验证这一点。请帮忙..谢谢

最佳答案

通常,当在组件上使用自定义 f:validator 标记时,将在生命周期事件阶段调用此验证器,然后在服务器端应用值。当待定值通过验证时,它将作为组件的值应用。如果验证失败,则该值将被丢弃,通常会添加一条验证消息。

此过程在这种情况下不起作用,因为确定给定输入字段的值是否有效取决于其他输入字段的待定值,并且我们无法保证组件的顺序将被验证。

我通常通过在页面上声明 PreRender 事件生命周期事件来解决这个问题:

<f:event listener="#{manageBean.preRenderValidation}" type="preRenderView" />

现在在我的托管 bean 中,我可以在正常验证和应用请求值阶段以及事件阶段完成后手动执行此类验证。

public void preRenderValidation() {
// validation logic
if (failed) {
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "You have a validation error", null);
getCurrentFacesContextInstance().addMessage(null, msg);
}
// If action redirects to another page or state needs reverted back then this must be done
// manually
}

如果在 preRender 中发生验证错误,那么特定组件事件可能已经更改了某些状态或返回了导航操作,因此在验证失败的情况下需要手动恢复这些操作。当然,另一种方法是在每个方法开始时手动验证。

关于primefaces - primefaces 中的自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10582244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com