freemarker中分配变量问题的长度

时间:2019-06-28 11:24:29

标签: freemarker smooks

我正在使用freemarker ..want来查找赋值变量的长度..i使用大小和长度函数..但失败并返回错误..请帮助我如何找到assign变量的长度

请找到我尝试过的以下代码...

输入数据--- 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 :(得分:0)

如错误消息所述,first存储XML标记,而不仅仅是纯文本字符串。您无法使用?length来获得标记的长度,因为这并不意味着什么(例如,如果哪个XML元素的内容很重要,如果您有一个实体引用等等)。标记的原因是<#assign first>...</#assign>不是正常的分配,它是用于捕获输出的,并且您正在使用XML输出格式。而是使用常规值分配:<#assign first = c>。现在,first与字符串c具有相同的类型。