BindingResult不能获取错误对象

Posted zhouyeqin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BindingResult不能获取错误对象相关的知识,希望对你有一定的参考价值。

BindingResult不能获取错误对象,代码如下:

@RequestMapping(value = "/login")
public String error4( Model model, UserModel user,BindingResult bindingResult){
    if(bindingResult.hasErrors()){
       List<ObjectError> ls=bindingResult.getAllErrors();
       System.out.println(ls);
       return "redirect:login.jsp";
    }
  return "hello";
}
public class UserModel {
    @NotNull(message="用户名不能为空")  
    private String username;
    private String password;
       get/set……
}

总结如下:

1.  加入校验用jar包:

2.  需要在spring配置文件中加入:  

<mvc:annotation-driven validator="validator" ></mvc:annotation-driven>
<!-- 校验器 -->
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
    <!-- Hibernate校验器 -->
    <property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
</bean>

3.  UserModel中如果是校验表单输入框是否为空,应使用:

@NotEmpty(message="用户名不能为空")  

4. BindingResult必须跟表单对象配对使用:

  如:UserModel user,BindingResult bindingResult紧随UserModel其后

5. 需要在UserModel user前加上@Validated或者@Valid

 

欢迎补充……

以上是关于BindingResult不能获取错误对象的主要内容,如果未能解决你的问题,请参考以下文章

Thymeleaf Bean 名称“person”的 BindingResult 和普通目标对象都不能用作请求属性

Thymeleaf + Spring:Bean 名称“用户”的 BindingResult 和普通目标对象都不能用作请求属性

如何从 BindingResult 获取控制器中的错误文本

是啥导致“java.lang.IllegalStateException:Bean 名称‘command’的 BindingResult 和普通目标对象都不能用作请求属性”?

无法将数据保存到 mysql db,在 gradle 项目中,bean 名称“goal”的 BindingResult 和普通目标对象都不能用作请求属性

使用 BindingResult 在 JSP 上显示错误消息