【发布时间】:2018-03-01 08:37:13
【问题描述】:
我的应用程序中有 Rest Controller,其代码如下所示:-
@RestController
@RequestMapping("/api/v1/user")
public class UserRestControllerV1 {
@PostMapping("")
public Response registerUser(@RequestBody @Valid final Request<UserDto> request,
final HttpServletRequest httpServletRequest,
BindingResult result){
Response response = new Response(request);
if(result.hasErrors()){
response.setData(new String("Error"));
}else {
response.setData(new String("Test"));
}
return response;
}
请求类:-
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Request<T> {
@JsonProperty(value = "co-relation-id")
private String coRelationID;
@NotNull(message = "The request body should be present")
private T data;
/*
..... various other fields
Getters / Setters
*/
}
UserDto 类:-
public class UserDto {
@NotNull(message = "The username should not be null")
private String username;
@NotNull(message = "The password should not be null")
@JsonIgnore
private String password;
/*
..... various other fields
Getters / Setters
*/
}
问题:我的验证存在问题。请求类中的字段 private T data 得到验证,但 T 中的字段 - 在这种情况下 UserDto 没有得到验证。
所以我需要知道实现这个的方法或代码sn-p。
我尝试在配置中配置休眠验证器 bean,但在场景中没有帮助
【问题讨论】:
-
把
@Valid放在private T data;上 -
谢谢,但如果我也想对数据字段进行验证检查怎么办?
标签: spring validation spring-mvc hibernate-validator spring-restcontroller