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