Код: Выделить всё
Rental Property
User Registration
Name:
${errors.getFieldError('name').defaultMessage}
Last Name:
${errors.getFieldError("lastName").defaultMessage}
Email Address:
${errors.getFieldError("email").defaultMessage}
Phone:
${errors.getFieldError("phone").defaultMessage}
Password:
${errors.getFieldError("password").defaultMessage}
Repeat Password:
${errors.getFieldError("replayPassword").defaultMessage}
Date of Birth:
Register
Код: Выделить всё
@PostMapping("/registration")
public String registration(@ModelAttribute @Valid UserForm userForm,
BindingResult result, Model model)
{
userValidator.validate(userForm, result);
model.addAttribute("errors", result);
if (result.hasErrors())
return "registration";
return "redirect:/";
}
При попытке отправить данные с ошибками внутри этого контроллера метод валидация работает как надо, ищутся все ошибки и возникает ошибка при попытке отобразить неверные данные пользователю:
Код: Выделить всё
freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> errors.getFieldError('name') [in template "registration.ftlh" at line 14, column 35]
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use when-presentwhen-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: ${errors.getFieldError("name").defaul... [in template "registration.ftlh" at line 14, column 33]
----
at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) ~[freemarker-2.3.33.jar:2.3.33]
at freemarker.core.UnexpectedTypeException.newDescriptionBuilder(UnexpectedTypeException.java:85) ~[freemarker-2.3.33.jar:2.3.33]...
Подробнее здесь: https://stackoverflow.com/questions/791 ... e-user-inp