Java如何Validated校验内部类的属性

PostMan请求url,MyValidateParamname,money能校验到,
MyValidateParam.Itemcode,price无法校验到,如何写呢?

控制器

@PostMapping("/post")
public String post(@Validated @RequestBody MyValidateParam obj) {

    return obj.getClass().getSimpleName();
}

Bean

import javax.validation.constraints.Digits;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;

@Data
public class MyValidateParam {
    @NotEmpty(message = "名称不能为空")
    private String name;

    @Digits(integer = 3, fraction = 2)
    @Min(10)
    private Double money;

    private Item item;

    @Data
    public static class Item {
        @NotEmpty(message = "名称不能为空")
        private String code;

        @Digits(integer = 4, fraction = 2)
        private Double price;
    }
}
阅读 5k
2 个回答

补个注解

@Valid
private Item item;

javaBean校验是单独的模块,只不过springmvc帮助我们校验了,controller中的方法换成@Valid也是好用的。其实一个普通的方法也是可以使用@valid注解校验的。

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