我尝试使用has_content
来检查map属性是否为非空,然后再将其作为布尔值进行测试,因为数据模型(出于痛苦和乏味的原因)有时会填充带有空字符串而不是布尔值的字段。
然而,当我尝试
时<#if (mecflag?has_content && mecflag)>
(意思是,我认为,&#34;如果变量不为空,如果它是布尔true
),我会收到错误。该错误表明Freemarker并不喜欢has_content
不是骆驼案例标识符的事实。这看起来很奇怪。
我使用的是我认为目前稳定的Freemarker,2.3.25。
错误文字:
命名约定不匹配。作为模板语言一部分的标识符(不是用户指定的标识符)必须在同一模板中始终使用相同的命名约定。此模板使用驼峰大小写命名约定(如:exampleName),通过第37行自动检测,第121列由标记&#34; upperCase&#34;建立,但有问题的标记&#34; has_content&#34;,使用不同的惯例。
答案 0 :(得分:0)
好吧,没多久。
显然,Freemarker可以使用 驼峰式或“_”版本的内置名称。因此,?hasContent
和?has_content
一样有效。文档有点不一致。
因此:如果您收到“命名约定不匹配”错误,请检查您在模板文件中使用?built_in
与builtIn
并选择其中一个。