我正在使用PrimeFaces 3.0。
我有三个文本字段,其中任何一个都是必填的。
如何在PrimeFaces中验证这一点。
请帮忙。
谢谢。
f:validator
标签时,这个验证器会在服务器端的生命周期事件阶段之前被调用。如果待定值通过验证,那么它将作为该组件的值被应用。如果它未通过验证,则该值将被丢弃,并且通常会添加一个验证消息。<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中,那么特定的组件事件可能已经更改了某些状态或返回了导航操作,因此在验证失败的情况下需要手动恢复这些操作。当然,另一种方法是在每个方法开始时手动进行验证。