2
我寫了一個異常映射器來覆蓋Hibernate Validator生成的響應,所以我可以對回覆中的消息進行一些控制。Hibernate Validator:覆蓋約束違規消息傳遞
我的問題是,我很難找到一個簡單的方法來「切換」違反約束的類型,因此,我無法編寫自定義消息。理想情況下,我可以根據註釋開關,並在響應中返回自定義消息。理想情況下,它看起來像這樣:
@Override
public Response toResponse(ConstraintViolationException exception) {
ConstraintViolation violation = exception.getConstraintViolations().iterator().next();
String message = null;
switch (violation.getType()) {
case SomeEnum.NOT_NULL:
message = "It's not null!";
break;
default:
message = "Other message!";
}
...
}
是這樣簡單的事情嗎?
這不是一個好方法 - 如果你想國際化這些消息怎麼辦?如果你要走這條路,就把註釋的'消息'作爲一個鍵,並使用普通的消息包。請參閱開箱即用約束註釋的默認值。 – chrylis
我已經有一個處理國際化的字符串文件。我簡化了這個例子,這樣就不會成爲焦點。我在這裏感興趣的是選擇正確消息的機制,而不是從哪裏檢索。 – Brandon