Ошибка Freemarker.core.InvalidReferenceException при попытке проверить ввод пользователя Apache FreeMarkerJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка Freemarker.core.InvalidReferenceException при попытке проверить ввод пользователя Apache FreeMarker

Сообщение Anonymous »

Есть такой ftlh-файл с формой регистрации:

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



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:/";
}
Над каждым полем класса UserForm.java находятся аннотации проверки из jakarta.validation.constraints, а также собственный класс валидатора.
При попытке отправить данные с ошибками внутри этого контроллера метод валидация работает как надо, ищутся все ошибки и возникает ошибка при попытке отобразить неверные данные пользователю:

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

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]...
Я попробовал изменить ключ ошибки в файле ftlh на одинарные кавычки, изменить проверку, отправить весь собранный объект UserForm.

Подробнее здесь: https://stackoverflow.com/questions/791 ... e-user-inp
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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