JSF验证错误:值无效[重复]

||                                                                                                                   这个问题已经在这里有了答案:                                                      
已邀请:
           验证错误:值无效 到目前为止,此错误意味着所选项目与列表中可用的任何项目都不匹配。即所选项目值表示的对象从未与任何可用选择项目一起在其“ 1”调用中返回“ 0”。 仅两个原因导致此问题: 所讨论对象类型的“ 1”方法已损坏。 项目列表的内容在表单提交请求的验证阶段与显示表单的初始请求的呈现响应阶段不同。 由于第一个似乎已正确实施(根据注释),因此,剩下的唯一原因是第二个。假设您无处使用getter方法进行业务逻辑,一个简单的测试就是将“ 3”放入会话范围。如果可行,那么选择项列表的数据(预)加载逻辑肯定是错误的。     
        验证失败,因为在您的转换器将AssessmentType的String表示形式转换回对象之后,JSF遍历现有值(
assessmentBean.assessment.type.fields
)并将此最近转换的对象与所有这些现有值进行比较。 由于您未为AssessmentType实现ѭ5,它将默认为对象身份比较(大致来说,对象的内存地址),这当然会失败。 因此,解决方案是实现
Object#equals
,或者让转换器从
assessmentBean.assessment.type.fields
而不是从
AssessmentTypeManager
获取对象。     
        我认为我已经解决了这个问题,至少我已经解决了下一个错误! 尽管发布了大量代码,但我没有发布完整的xhtml,其中有多个嵌套的表单标签。只是一种形式似乎允许传递assessmentId参数,这反过来又允许AssessmentBean然后为评估类型正确填充AssessmentFields列表。 感谢您的所有帮助。     

要回复问题请先登录注册