验证错误值无效:primefaces

验证错误值无效:primefaces,primefaces,Primefaces,请帮我找到解决办法 这是xhtml代码: #{f.refFam} #{f.dsgFam} 这是我的转换器: @facescoverter(forClass=ActiviteFamille.class,value=“familleAct”) 公共类ActiviteFamilleConverter实现转换器{ @凌驾 公共对象getAsObject(FacesContext arg0,UIComponent arg1,字符串代码){ if(code.trim()等于(“”){ 返回null; }

请帮我找到解决办法

这是xhtml代码:


#{f.refFam}
#{f.dsgFam}
这是我的转换器:

@facescoverter(forClass=ActiviteFamille.class,value=“familleAct”)
公共类ActiviteFamilleConverter实现转换器{
@凌驾
公共对象getAsObject(FacesContext arg0,UIComponent arg1,字符串代码){
if(code.trim()等于(“”){
返回null;
}否则{
activitefamiledao actFamDao=新的activitefamiledao();
List actFamList=actFamDao.findAll();
用于(活动家庭af:actFamList){
if(af.getRefFam().equals(代码)){
返回af;
}
}
}
返回null;
}
@凌驾
公共字符串getAsString(FacesContext arg0,UIComponent arg1,对象值){
if(value==null | | value.equals(“”){
返回“”;
}否则{
返回字符串.valueOf(((ActiviteFamille)value.getRefFam());
}
}
}
托管bean:

@ManagedBean(name=“activteBean”)
@视域
公共类ActivteBean实现可序列化{
私人活动法案=新活动();
private ActiviteDao actDao=新ActiviteDao();
私人名单;
私有布尔初始化;
私有activitefamiledao actFamDao=新activitefamiledao();
私人名单;
公共布尔值isInit(){
act=新活动();
actList=actDao.findAll();
actFamList=actFamDao.findAll();
返回init;
}
....
}

感谢您的帮助。

如果
ActiveFamille
equals()
方法没有正确实现,就会发生这种情况

错误消息表示所选(和转换的)值与列表中的任何元素都不匹配
activteBean.actFamList


尝试调试并在
ActiveFamille
的equals()方法中设置断点,并尝试找出其不匹配的原因。

您可以在转换器方法中尝试system out,查看发送和接收的内容。您在问什么问题?非常有帮助!我也有同样的问题,因为我的“ActiveFamile”类中没有定义equals()方法。列表上有一个对应的项,但对象的默认equals()是通过引用匹配对象,而不是对象属性。当然,由转换器生成的ActiveFamille实例是一个全新的实例。在我的例子中,equals或hashcode上的断点从未命中!