FreeMarker 本身没有三目运算符,以 ?string(,)代之.
然, ?string 为函数, 故,两个参数先求值,后返回.
因此
${(val != null && val?length > 7)?string(val?substring(3), '')}
这种表达式在 val = '12' 的时候会报错。
然, ?string 为函数, 故,两个参数先求值,后返回.
因此
${(val != null && val?length > 7)?string(val?substring(3), '')}
这种表达式在 val = '12' 的时候会报错。