Валидация Jakarta - вручную настройку параметра для ограниченияJAVA

Программисты JAVA общаются здесь
Anonymous
Валидация Jakarta - вручную настройку параметра для ограничения

Сообщение Anonymous »

Иметь простую форму, подобную следующему: < /p>

Код: Выделить всё

Person's date of birth:



< /code>
Я хочу, чтобы на стороне сервера проверила отправленные данные, используя следующий компонент: < /p>
@Getter @Setter //from Lombok
public class FormData {
@NotBlank
@FormParam("someDate")
@MvcBinding
private String birthdayAsString;

@MvcBinding
@Past
public LocalDate getBirthday(){
try {
return LocalDate.parse(birthdayAsString);
}
catch (DateTimeParseException ex){
return null;
}
}
}
< /code>
Проверка выполняется в методе ресурса, подобно следующему: < /p>
// this is a part of a controller class that process a GET and multiple POST requests
@Inject private BindingResult bindingResult;
@POST
@Path("bean")
public void postData(@Valid @BeanParam FormData form){
for(ParamError error : bindingResult.getAllErrors() )
{
System.out.println(error.getParamName()+":"+error.getMessage());
}
System.out.println(form);
}
< /code>
Проблема возникает, когда я отправляю форму с настоящей или будущей датой. В таком случае я получаю предупреждение: < /p>
WARNING:   Cannot resolve paramName for violation: ConstraintViolationImpl{interpolatedMessage='must be a past date', propertyPath=postData.arg0.birthday, rootBeanClass=x.y.z.FormController$Proxy$_$$_WeldSubclass, messageTemplate='{jakarta.validation.constraints.Past.message}'}
Это предупреждение проявляется в журналах, когда я пытаюсь распечатать ошибки проверки с использованием error.getParamName () . В день рождения я получаю надлежащее сообщение: не должно быть пустым (если оно на самом деле пусто), но на день рождения я получаю NULL: Должен быть дата прошлой .
Как я могу установить параметры для моего ограничения, чтобы этот ограничение насилию, я не могу использовать его, а не имя, а не имя, а не имя, а не имя, а не имя, а не зовут, а не зовут, а не зовут, а не зовут, а не зовут, а не зовут, а не зовут, а не зовут (а не имя, а не зовут, а не натрону null )?

Подробнее здесь: https://stackoverflow.com/questions/797 ... constraint

Вернуться в «JAVA»