2012-02-01 28 views
0

我想通过使用自定义验证器来动态验证值,我可以使用多个组件。自定义验证程序根据其使用情况从不同的ManagedBeans中获取这些值。动态获取自定义JSF验证器中的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

对于Validator来说,这是一个非常奇怪的用例。你不*实际*需要一个'转换器'? “验证器”不应该操纵/转换数据,而只是检查/验证数据并将其解开。 – BalusC 2012-02-01 12:05:30

+0

我很抱歉的描述。我不会操纵验证器中的数据。我只想获得ManagedBean,其中稍后将提交组件的提交的值将被保存,因为在此Bean中有一些我需要验证的数据。 – buderu 2012-02-01 14:48:54

回答

0

我不认为这是一个好方法,因为在验证阶段的模型仍然没有更新,什么你得到与查看刚刚输入值。我想知道为什么你需要bean实例。如果您的验证取决于其他组件,请参阅link @ SOValidator for multiple fields

正如你提到你需要验证它,并放回原位,这就是为什么验证阶段是一回事,在您的验证验证它,如果它失败,将不会被传递到托管bean。

看一看这个链接,JSF生命周期JSF Lifecycle

希望这有助于!