解答:
1 @Validated:可以用在类 、方法和方法参数上。但是不能用在成员属性
@Valid:可以用在方法、构造函数、方法参数和成员属性
2 用法如下直接上代码:
入参类 ActivityDto, prizeInfo
@Data public class ActivityDto { @ApiModelProperty("id") private String promotionId; @NotBlank(message = "活动标题") private String title; @NotBlank(message = "图片不能为空") private String picture_url; @NotBlank(message = "活动信息不能为空") private String text; @NotNull(message = "奖品信息不能为空") @Size(min=1,message = "活动奖品至少有1种") @Valid private List<PrizeInfoDto> prizeInfo; }
@Data public class PrizeInfoDto { @NotBlank(message = "奖品名称不能为空") private String prizeName; @NotNull(message = "奖品等级不能为空") private Integer prizeLevel;
@NotNull(message = "奖品属性不能为空") private Integer prizeProperty; @NotBlank(message = "领奖信息不能为空") private String prizePersonal;
}
@Validated 用在实体类上,检查入参数据实体
@PostMapping("activity")
@ApiOperation("新增活动")
public Result addActivity(HttpServletRequest request, @Validated @RequestBody ActivityDto activityDto) throws Exception {
//dothings
}
基于以上就完成了 嵌套检测参数
更多内容参考:https://blog.csdn.net/qq_27680317/article/details/79970590