繁体   English   中英

在自定义JSF验证程序中动态获取ManagedBeans

[英]Get ManagedBeans in Custom JSF Validator dynamically

我想通过使用可以与多个组件一起使用的自定义验证程序来动态验证值。 定制验证器根据其用法从不同的ManagedBeans获取这些值。

如何确定从哪个ManagedBean检索值? 因此,我可以获取它,对其进行验证,然后将其放回ManagedBean中。

我的自定义验证器:

@FacesValidator(value = "valid")
public class DateValidator implements Validator {

    @Override
    public void validate(FacesContext context, UIComponent component, 
             Object value) throws ValidatorException {
       // Bean bean = ?
    }
}

我认为这不是一个好的方法,因为在验证阶段模型仍然没有更新,您得到的只是视图中的输入值。 我想知道为什么在那里需要bean实例。 如果您的验证依赖于视图中的其他组件,则可以在多个字段中引用link @ SOValidator

正如您所提到的,您需要对其进行验证并放回原处,这就是验证阶段的全部原因,请在您的验证器中对其进行验证,如果验证阶段失败,它将不会传递给托管bean。

看一下此链接,了解JSF生命周期JSF生命周期

希望这可以帮助 !!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM