我想通过使用可以与多个组件一起使用的自定义验证器动态验证值。自定义验证程序根据其用法从不同的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 = ?
}
}
答案 0 :(得分:0)
我不认为这是好方法,因为在验证阶段模型仍然没有更新,你得到的只是视图中的输入值。我想知道为什么你需要bean实例。如果您的验证取决于视图中的其他组件,则可以参考link @ SO和Validator for multiple fields。
正如您所说,您需要对其进行验证并放回,这就是为什么验证阶段的全部内容,在验证器中验证它,如果失败则不会传递给托管bean。
查看JSF生命周期JSF Lifecycle
的此链接希望这有帮助!!!