Длина вопроса о назначении переменной в freemarker - PullRequest
0 голосов
/ 28 июня 2019

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

Пожалуйста, найдите приведенный ниже код, который я пробовал ...

Входные данные --- cusID="a-1242" - Я хочу разделить входные данные по - и хочу сохранить в отдельной переменной с помощью функции присвоения

 <#list (it.@CusID[0]!"")?split("-") as c><#if ((c?index) ==0)>
<#assign first>${c}</#assign>
<#assign firstlen = c?size>
</#if>
 </#list>

Над кодом firstlen используется для поиска длины, но не удается найти длину

СООБЩЕНИЯ ОБ ОШИБКАХ найти ниже

Для левого операнда "? Size": ожидается расширенный хеш или последовательность или расширенная коллекция, но это оценивается как markup_output (оболочка: f.c.TemplateXMLOutputModel):

1 Ответ

0 голосов
/ 30 июня 2019

Как говорится в сообщении об ошибке, first хранит разметку XML, а не просто текстовую строку. Вы не можете получить длину разметки с помощью ?length, так как неясно, что это значит (например, если содержание каких элементов XML имеет значение, что, если у вас есть ссылка на сущность и т. Д.). Причина разметки в том, что <#assign first>...</#assign> не является обычным назначением, оно для захвата вывода, и вы используете формат вывода XML. Вместо этого используйте обычное присвоение значения: <#assign first = c>. Теперь first будет иметь тот же тип, что и c, строка.

...