我創建使用Bean驗證1.2以下方法一個Spring MVC的REST服務:春Bean驗證@Valid處理
@RequestMapping(value = "/valid")
public String validatedMethod(@Valid ValidObject object) {
}
如果對象是無效的,Tomcat的告訴我,The request sent by the client was syntactically incorrect.
和我validatedMethod
是永遠調用。
如何獲取在ValidObject
bean中定義的消息?我應該使用一些過濾器還是攔截器?
我知道我可以重寫下面一樣,得到一套由注入Validator
ConstraintViolation
S,但上面似乎更利落......
@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();
}
}
乾杯,作品像一個魅力:)雖然不錯,但不必爲每個驗證的方法做到這一點。 – Dormouse
@Dormouse檢查我的答案:) – dharam