spring-mvc的数据验证Validator

来源:互联网 发布:矩阵不可逆有什么性质 编辑:程序博客网 时间:2024/06/01 09:52
1、Spring-MVC传递对象参数
(1)、@ModelAttribute注解参数
使用该参数进行注解时,默认不使用前缀。

使用该配置来进行前缀配置

@InitBinder("user")protected void initBinder(WebDataBinder binder){        binder.setFieldDefaultPrefix("user.");}

2、Spring-MVC传递对象验证

(1)、编写Validator

public class UserValidator implements Validator{    @Override    public boolean supports(Class<?> clazz) {        return User.class.equals(clazz);    }    @Override    public void validate(Object target, Errors errors) {        User user = (User)target;        if(user==null){            ValidationUtils.rejectIfEmpty(errors,"user","传递的对象为空");            System.out.println("传递的对象为空");        }else{            System.out.println(user);            if(user.getName()==null||user.getName().equals("")){                ValidationUtils.rejectIfEmpty(errors,"name","用户名字为空");                System.out.println("用户名字为空");            }        }    }}
(2)、采用@Validated进行配置

@Controllerpublic class UserController {    @InitBinder("user")    protected void initBinder(WebDataBinder binder){        binder.setFieldDefaultPrefix("user.");        binder.setValidator(new UserValidator());    }    @RequestMapping(value = "testIndex",method= RequestMethod.GET)    public String testVaild(@Validated @ModelAttribute User user,BindingResult result) throws Exception{        System.out.println(user);        if(result.hasErrors()){           return "index";        }        return "index";    }}

(3)采用@Valid注解同@Validated

@RequestMapping(value = "/testIndex")    public String testVaild(@Valid User user,BindingResult result) throws Exception{        System.out.println(this.getClass().getName()+"==="+user);        if (result.hasErrors()){            return "error";        }        return "index";    }


0 0
原创粉丝点击