То, что я хотел бы сделать, это иметь стандартное сообщение об ошибке, которое использует аннотацию для заполнения значения в указанном сообщении об ошибке.Код должен помочь объяснить.
У меня есть модель POJO, в которой есть поля с аннотациями JSR-303:
@Min(value = 1)
@Max(value = 9999)
private int someInt;
и НАСТОЯЩЕМУ, у меня есть два файла свойств: один длядержите метки для моих полей, а другую - для хранения фактических сообщений:
label.someInt=Some Integer Field
Min="{0}" must be no less than {value}
Затем я перебираю вещи, чтобы построить то, что я хочу:
for (FieldError a : result.getFieldErrors()) {
boolean found = false;
for (String b : a.getCodes()) {
System.out.println(b);
try {
addErrorMessage(messageSource.getMessage(b,
new Object[] { new DefaultMessageSourceResolvable(
new String[] { "label." + a.getField() }
)},
null));
found = true;
break;
} catch (Exception e){/* nom Exception */}
}
if (!found) {
addErrorMessage(a.getDefaultMessage());
}
}
Это все хорошо и здорово, ноЯ хотел бы быть в состоянии придерживаться способа ведения дел на основе аннотаций и добавлять какие-то метки на полях.Например:
@Min(value = 1)
@Max(value = 9999)
@Label(value = "Some Integer Field")
private int someInt;
Тогда я мог бы написать вспомогательную функцию, которая просто использовала бы аннотацию, чтобы пометить сообщение об ошибке, которое я имею в файле свойств.Мне также нужно это для работы с ошибками валидации на основе Spring, такими как typeMismatch.Забавно, что.
Заранее спасибо за помощь!