freemarker中的以下内容有什么区别?
!
has_content
??
if_exists
Run Code Online (Sandbox Code Playgroud)
我用了 ??而不是has_content&它导致如此巨大的问题.搞砸了我的一天.我真的需要弄清楚这件事.
我用的时候
!(xyz.abc!)?? -- it dint work
Run Code Online (Sandbox Code Playgroud)
我用的时候
!(xyz.abc!)?has_content ... it did work
Run Code Online (Sandbox Code Playgroud)
不?或has_content或if_exists检查相同的事情?
dde*_*any 134
??告诉左手操作数的值是否缺失(表示它是Java null还是你有一个未定义的变量),并相应地返回false(丢失)或true(不丢失).
?has_content非常类似??,除了它还返回false0长度字符串或空FTL序列(如java.util.ListJava数组等)或空FTL散列(如java.util.Map等).(它不返回falsea 0,boolean false等)
!用于在缺少值时给出默认值(再次表示它是Java null或者您有一个未定义的变量),例如color!"no color".如果省略的右手操作数!,那么默认值是在同一时间一个空字符串和空序列和空哈希(多输入值),这是非常方便的写作之类的东西<#list things! as thing>,${foo!}.
?if_exists是旧的写作方式??.不要使用它.
虽然我们在这里,但请注意,所有这些运算符仅涵盖虚线或[]表达式的最后一步,例如user.price!0仅price缺少句柄if user,但如果user缺少则不会.为了涵盖两种可能性,使用(user.price)!0,它处理在评估过程中抛出的所有缺失的变量错误(),无论它们来自何处.
| 归档时间: |
|
| 查看次数: |
64215 次 |
| 最近记录: |