Freemarker单if语句多条件判断问题求助
解决方案
你需要将两个条件用逻辑与(&&)合并,同时注意空值检查的顺序(必须先确认locations存在,再访问其内部属性,避免空指针错误)。修正后的代码如下:
<#if _responses["getLinks"]["body"].locations?? && _responses["getLinks"]["body"].locations[0].branch.id != (_map((_responses.getInfo.body.data.cst)?substring(0,3), "cstarray"))> true <#else> false </#if>
逻辑说明
- 第一个条件
_responses["getLinks"]["body"].locations??确保locations属性存在且非空,避免后续访问locations[0]时抛出空值错误。 - 第二个条件
!=判断locations第一个元素的branch.id与cstarray的值不相等。 - 只有当两个条件同时满足时返回
true;其他所有情况(包括locations不存在,或存在但id匹配cstarray)都返回false,正好解决你提到的"已关联"报错问题。
内容的提问来源于stack exchange,提问作者Mick Herber
相关产品推荐
相关产品推荐

