关于JSR303中Neither BindingResult nor plain target object错误的解决方法

在进行JSR303验证的学习时,在进行表单跳转时出现了一个问题,解决方法很简单,但是困扰了我很长时间。
关于JSR303中Neither BindingResult nor plain target object错误的解决方法
在这里,用户年龄的要求是18岁至85岁,用户手机要求是手机号码格式,如果输入不符合格式要求,JSR303验证则不能通过,会显示出错误预制文件提供的显示文字。

关于JSR303中Neither BindingResult nor plain target object错误的解决方法
在输入内容不合规定的条件下,在提交表单后,出现了500的错误,原因为java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name ‘user’ available as request attribute
(Bean名称“user”的BindingResult或纯目标对象均不能用作请求属性)

关于JSR303中Neither BindingResult nor plain target object错误的解决方法
关于JSR303中Neither BindingResult nor plain target object错误的解决方法
如上图,如果输入的信息正确,页面是可以正常跳转的。

在网上寻找了好多办法,但都没有得到解决,在和朋友探讨后,发现了问题所在:
关于JSR303中Neither BindingResult nor plain target object错误的解决方法
在控制器类下的@RequestMapping注解下,要使用@ModelAttribute注解接收请求参数,如果注解后没有写(“user”)(相应的请求参数),就会出现无法验证而500报错的情况。
加上后,问题就可以解决。