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