当前位置: 首页 > 知识库问答 >
问题:

freemarker中分配变量的长度问题

缪英锐
2023-03-14

我正在使用freemarker..想找到赋值变量的长度..我使用了size和length函数..但它失败并返回错误..请帮助我在如何找到赋值变量的长度

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

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

对于“?size”左手操作数:需要扩展哈希、序列或扩展集合,但计算结果为markup_output(wrapper:f.c.templatexmloutputmodel):

共有1个答案

孔才
2023-03-14

正如错误消息所说,first存储XML标记,而不仅仅是纯文本字符串。您不能用?length获得标记的长度,因为这意味着什么并不明显(比如哪些XML元素的内容很重要,如果您有一个实体引用,等等)。它是标记的原因是<#assign first>... 不是一个普通的赋值,它是用来捕获输出的,并且您使用的是XML输出格式。相反,使用常规值赋值:<#Assign first=C>。现在first将具有与C相同的类型,String。

 类似资料:
  • 是否可以访问模板中的设置变量? 设置: 如何使用,而不在模板中重用,以避免重复的代码,尤其是在其层次结构较深的情况下?

  • 问题内容: 如何使用Swift在一行中分配多个变量? 问题答案: 你不知道 这是一种语言功能,可以防止赋值的标准不良副作用返回值,如Swift书中所述: 与C和Objective-C中的赋值运算符不同,Swift中的赋值运算符本身并不返回值。以下语句无效: 此功能可防止在实际需要等于运算符()时偶然使用赋值运算符()。通过使其无效,Swift可帮助您避免代码中的此类错误。 因此,这有助于防止此极其

  • 我正在使用Freemarker构建一个Liferay应用程序显示模板。模板使用循环迭代一组实体(期刊文章)。模板使用了几个类型为Date和time的变量。我如何在循环的每次迭代中重置这些变量或检查“空”? 假设我们在循环中有以下代码,在循环的某些交互中,“starthour”可能是空的: 在我的循环中设置了变量之后。无论我尝试什么,当我在Liferay中使用我的脚本时,总是会出现这样的错误: 那么

  • 问题内容: 我的印象是,尽管语法有所不同,但下面的函数a和b在逻辑上是等效的。但是,它们不是,我也不了解它们之间的区别。 在我看来,他们俩都在分配: x对变量z的值, y的值对应于变量x,并且 x + y的值等于变量y。 有人能帮助消除我对多变量分配以及函数a和函数b之间的逻辑差异的误解吗? 问题答案: 分配可以认为是“原子”操作。也就是说,认为在所有操作完成之前,“ 左侧”的所有值都是“冻结”的

  • 我在liferay 6.2上工作了应用程序显示模板,我使用freemarker帮助分页liferay的动态数据列表。当我升级到救生筏7时,这是一个问题。Liferay 7使用code获取记录。 旧代码: 因此,我尝试,但是会出现错误。 以下计算结果为null或missing:==>staticUtil[在模板“20115#20159#21387”中,第9行,第27列]提示:如果已知失败表达式在法律

  • 我有一个关于java如何处理未使用变量的问题。 假设我有以下代码: 那么我就不会在代码中使用notUsedVariable。该变量是否会被存储,或者java是否足够聪明,可以在编译时忽略该变量? 谢谢