Я пытаюсь отобразить поле в шаблоне freemarker, которое может принимать как поле с большим десятичным числом, так и поле типа даты. Они передаются в виде строки из ввода.
Но когда freemarker пытается конвертировать их, он выбрасывает это исключение для остальной части. Он не работает, когда я предоставляю ввод даты, но отлично работает для десятичных значений.
<# if key.oldValue? Is_string> $ {key.oldValue} <# else> $ {key.oldValue? String ["0. ##########"]}
Сообщение об ошибке:
Ошибка шаблона FreeMarker:
Для левого операнда "... [...]": ожидался хеш, но он был оценен как строка (обертка: f.t.SimpleScalar):
==> key.oldValue? string [в шаблоне "template" в строке 42, столбец 36]
Трассировка стека FTL («~» означает вложение):
- Ошибка: $ {(key.oldValue? String ["0. ##########" ... [в шаблоне "шаблон" в строке 42, столбец 33]
Трассировка стека Java (для программистов):
freemarker.core.NonHashException: [... Сообщение об исключении уже было напечатано; смотри выше ...]
на freemarker.core.DynamicKeyName.dealWithStringKey (DynamicKeyName.java:142)
at freemarker.core.DynamicKeyName._eval (DynamicKeyName.java:75)