全部。
昨天我将Spring Boot 2.0以及Spring会话和spring-boot-starter-data-redis一起更新为2.1.6。在更新之前,我没有这类问题。 我想将我的错误从提交的表单重定向到另一个页面以显示它们。 我有以下控制器
@Secured({"ROLE_ADMIN"})
@RequestMapping(value = "/new", method = RequestMethod.POST)
public String newExhibitor(Model model, @Valid ExhibitorList newExhibitor, BindingResult result, RedirectAttributes attr) {
if (result.hasErrors()) {
attr.addFlashAttribute("org.springframework.validation.BindingResult.newExhibitor", result);
attr.addFlashAttribute("newExhibitor", newExhibitor);
return "redirect:/exhibitor/view";
}
exhibitorListRepository.save(newExhibitor);
return "redirect:/exhibitor/new";
}
如果表单有错误,则用户将被重定向到/ exhibitor / view,其中将显示错误。问题是,当我提交表单时,我会得到
无法序列化;嵌套异常为 org.springframework.core.serializer.support.SerializationFailedException: 无法使用DefaultSerializer序列化对象;嵌套异常 是java.io.NotSerializableException: org.springframework.validation.beanvalidation.LocalValidatorFactoryBean org.springframework.data.redis.serializer.SerializationException: 无法序列化;嵌套异常为 org.springframework.core.serializer.support.SerializationFailedException: 无法使用DefaultSerializer序列化对象;嵌套异常 是java.io.NotSerializableException: org.springframework.validation.beanvalidation.LocalValidatorFactoryBean
来自
attr.addFlashAttribute("org.springframework.validation.BindingResult.newExhibitor", result);
特别是BindingResult结果。当我从属性中删除该对象时,没有例外,但是我也没有字段错误。 我的每个实体都实现了Serializable,因此它不是来自于我的任何对象。
**更新 我测试了2.2.0(SNAPSHOT)版本,那里没有错误。