2 emperorname emperorname 于 2017.09.10 10:05 提问

springmvc怎么校验一个包装的pojo类
    //用户类
    class User{
        @Size(min=1)
        private String name;
    }

    //用户的包装类
    class UserVo{
        private User user;
    }

在controller的方法里传进的参数类型是UserVo,怎么对这个参数校验呢?如果类型是User,我会做,包装类就不会了。求高手解答。谢谢!

如果不使用包装类,只用User,那么handler方法可以这么写:

 public ModelAndView handle(@Validated User,BindingResult result){
     .............................
 }

但是用了包装类之后(如下),不能校验到UserVo里的User是否正确

 public ModelAndView handle(@Validated UserVo,BindingResult result){
     .............................
 }

3个回答

ShewMi
ShewMi   2017.09.10 23:15
已采纳

使用对象图级别校验,可以将自身属性对象中的属性关联校验,在private User user上面打上@Valid注解即可

emperorname
emperorname 回复Imadone: 正解!太感谢你了:)
2 个月之前 回复
ShewMi
ShewMi 应该是使用mvc表单吧?那么在modelAttribute那里设为UserVo.user即可,温馨提示,如果你使用的校验实现是hibernate的话,handler那里最好使用@Valid
2 个月之前 回复
Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.09.10 10:29

controller的方法里传进的参数类型是UserVo,,,可以通过UserVo,,的对象取出,,User的对象,,

操作的还是User的对象,,有问题吗?

emperorname
emperorname 谢谢你回答我的问题。不过我可能没有描述清楚。我更新了一下问题,麻烦帮我解决一下。谢谢
2 个月之前 回复
sinat_30160727
sinat_30160727   2017.09.10 20:11

springmvc前端参数到对象的映射支持级联,前端可以name=user.xxx

emperorname
emperorname 麻烦可以说清楚一下吗?例如我第二个handle方法,我必须传进UserVo对象,那么怎么校验这个对象是否正确?
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片