Я написал блок отображения исключений, чтобы переопределить ответ, сгенерированный 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