问题描述
我有一个 Spring Boot 应用程序,我正在使用 spring-boot-starter-validation
依赖项来验证 java bean。
我的控制器代码如下
@PostMapping("/testMessage")
ResponseEntity<String> testMethod(@Valid @RequestBody InternalMsg internalMsg) {
return ResponseEntity.ok("Valid Message");
}
InternalMsg 类
public class InternalMsg implements Serializable {
@NotNull(message = "Msg Num is a required field")
private String msgNumber;
@NotNull(message = "Activity Name is a required field")
private String activityName;
private MsgDetails msgDetails;
}
InternalMsg 上提到的约束工作正常。但是在 MsgDetails 类上指定的约束不起作用。
MsgDetails 类
public class MsgDetails {
@NotNull(message = "Message Source Name should not be null")
private String msgSourceName;
@NotBlank(message = "Message Source ID should not be empty")
private String msgSourceId;
}
是否有任何选项可以扩展对 InternalMsg 类的类成员的验证?
解决方法
还将 @Valid
注释添加到 msgDetails
类中的 InternalMsg
字段:
public class InternalMsg implements Serializable {
@NotNull(message = "Msg Num is a required field")
private String msgNumber;
@NotNull(message = "Activity Name is a required field")
private String activityName;
@Valid // << ----
private MsgDetails msgDetails;
}