Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Java + Spring + Freemarker: FreeMarker template error. when-present<#else>when-missing / 7 сообщений из 7, страница 1 из 1
09.10.2018, 18:34
    #39715093
Molasar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + Spring + Freemarker: FreeMarker template error. when-present<#else>when-missing
Всем привет!

Есть сущность:
Код: vbnet
1.
2.
3.
4.
5.
6.
@Entity(name = "usr")
public class User implements UserDetails {
    ...
    @NotNull(message = "Age cannot be empty!")
    private Integer age;
   ...



Есть Freemarker шаблон с данными о пользователе, в частности возраст:
Код: java
1.
<input type="text" name="age" placeholder="age" value="<#if user??>${user.age}</#if>" />



При сохранении данных происходит валидация данных, с последующим возвратом в шаблон при наличии ошибки и перезаполнением правильных полей.

По полю "age" получаю ошибку:
авторfreemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> user.age [in template "registration.ftl" at line 80, column 82]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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 <#if myOptionalVar??>when-present<#else>when-missing</#if>. (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: ${user.age} [in template "registration.ftl" at line 80, column 80]
----

Если меняю тип "age" в сущности "User" на "String" всё работает.
...
Рейтинг: 0 / 0
09.10.2018, 18:39
    #39715097
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + Spring + Freemarker: FreeMarker template error. when-present<#else>when-missing
Molasar,

А если попробовать заменить ${user.age} на ${user.age.value?html}, в порядке метода научного тыка.
...
Рейтинг: 0 / 0
09.10.2018, 18:47
    #39715101
Molasar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + Spring + Freemarker: FreeMarker template error. when-present<#else>when-missing
Andy_OLAPMolasar,

А если попробовать заменить ${user.age} на ${user.age.value?html}, в порядке метода научного тыка.

FTL stack trace ("~" means nesting-related):
- Failed at: ${user.age.value?html} [in template "registration.ftl" at line 80, column 80]
----] with root cause

freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> user.age [in template "registration.ftl" at line 80, column 82]
...
Рейтинг: 0 / 0
09.10.2018, 19:41
    #39715131
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + Spring + Freemarker: FreeMarker template error. when-present<#else>when-missing
Для null or missing другой синтаксис: ${user.age.value!"null or missing"}
https://freemarker.apache.org/docs/dgui_template_exp.html#dgui_template_exp_missing_default
...
Рейтинг: 0 / 0
09.10.2018, 21:15
    #39715171
Molasar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + Spring + Freemarker: FreeMarker template error. when-present<#else>when-missing
Alexander A. SakДля null or missing другой синтаксис: ${user.age.value!"null or missing"}
https://freemarker.apache.org/docs/dgui_template_exp.html#dgui_template_exp_missing_default

авторfreemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> user.age [in template "registration.ftl" at line 80, column 82]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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 <#if myOptionalVar??>when-present<#else>when-missing</#if>. (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: ${user.age.value!"null or missing"} [in template "registration.ftl" at line 80, column 80]
----
...
Рейтинг: 0 / 0
09.10.2018, 22:03
    #39715190
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + Spring + Freemarker: FreeMarker template error. when-present<#else>when-missing
Ну да. Копипаст - зло. "value" там лишнее конечно же. Нет такого свойства у Integer.
${user.age!"null or missing"}
...
Рейтинг: 0 / 0
10.10.2018, 13:14
    #39715528
Molasar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + Spring + Freemarker: FreeMarker template error. when-present<#else>when-missing
Alexander A. SakНу да. Копипаст - зло. "value" там лишнее конечно же. Нет такого свойства у Integer.
${user.age!"null or missing"}

Спасибо! Разобрался.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Java + Spring + Freemarker: FreeMarker template error. when-present<#else>when-missing / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]