У меня есть несколько полей количества в моей модели, которая является числовой. SpringValidatorAdapter не проверяет эти ограничения.
Если я объявляю тип данных полей, как показано ниже
public class Demo{
@Max(value = "7", message = "{max message}")
@Min(value = "1", message = "{min message}")
private Integer amount1;
@Max(value = "7", message = "{max message}")
@Min(value = "1", message = "{min message}")
private Integer amount2;
//getters and setters
}
Фрагмент контроллера
@PostMapping(value = { "/url" }, produces = "application/json;charset=utf-8")
@ResponseBody
public String test(@RequestBody Map<String, String> formInputs) {
Demo dmo=new Demo();
String amount1 = formInputs.get("userinput1");
dmo.setAmount1(Integer.parseInt(amount1));
String amount2 = formInputs.get("userinput2");
dmo.setAmount2(Integer.parseInt(amount2));
final Validator javaxValidator = Validation.buildDefaultValidatorFactory().getValidator();
final SpringValidatorAdapter validator = new SpringValidatorAdapter(javaxValidator);
errors = new BeanPropertyBindingResult(dmo, dmo.getClass().getName());
validator.validate(dmo, errors);
По ссылкам, которые я пытался
разница между @size (max = значение) и @min (значение) @max (значение)
Spring - проверка целочисленного атрибута
javax-проверка
Примечание: если я изменю это на String. Работает нормально.