我使用Bean Validation 1.2使用以下方法创建了一个Spring MVC REST服务:
@RequestMapping(value = "/valid")
public String validatedMethod(@Valid ValidObject object) {
}
Run Code Online (Sandbox Code Playgroud)
如果object无效,Tomcat会通知我,The request sent by the client was syntactically incorrect.我validatedMethod的调用永远不会被调用.
如何获取ValidObjectbean 中定义的消息?我应该使用一些过滤器或拦截器吗?
我知道我可以像下面一样重写,ConstraintViolation从注入中得到一组s Validator,但上面看起来更整洁......
@RequestMapping(value = "/valid")
public String validatedMethod(ValidObject object) {
Set<ConstraintViolation<ValidObject>> constraintViolations = validator
.validate(object);
if (constraintViolations.isEmpty()) {
return "valid";
} else {
final StringBuilder message = new StringBuilder();
constraintViolations.forEach((action) -> {
message.append(action.getPropertyPath());
message.append(": ");
message.append(action.getMessage());
});
return message.toString();
}
}
Run Code Online (Sandbox Code Playgroud)