如何在Json转Object时校验对象的属性是否符合规则

如何在json转Object时校验对象的属性是否符合规则
比如对象中的id不能为空,name长度限制什么的。

想通过Spring Validator的注解实现,但好像不行。

clipboard.png

clipboard.png

阅读 10.5k
4 个回答

感谢各位提供思路,已经找到解决方法了。
http://ifeve.com/use-bean-val...

/**
     * 验证某个bean的参数
     * 
     * @param object 被校验的参数
     * @throws ValidationException 如果参数校验不成功则抛出此异常
     */
    public static <T> void validate(T object) {
        //获得验证器
        Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
        //执行验证
        Set<ConstraintViolation<T>> constraintViolations = validator.validate(object);
        //如果有验证信息,则将第一个取出来包装成异常返回
        ConstraintViolation<T> constraintViolation = getFirst(constraintViolations, null);
        if (constraintViolation != null) {
            System.out.println(constraintViolation.getPropertyPath());
            System.out.println(constraintViolation.getConstraintDescriptor().getAnnotation().annotationType());
            System.out.println(constraintViolation.getMessage());
        }
    }

可以在controller接收参数是时用public Result m(@valid Demo demo,){}这样验证。另外这是一整套的,如果单纯拿出来做,需要手动创建一个validator

你尝试下在生成的类属性的get set方法中 添加逻辑代码,出错直接 throw 抛错 试一试
不过其实你完全可以生成完在判断,似乎没什么区别

搜一下,json-shemale

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏