最近在mybatis的xml文件中写字符串判断时发现有一个字段的if判断总是不生效,但是其他的if都是生效的,最后发现是符号的问题,在xml中单引号代表单字符判断,而双引号才会代表字符串,最后修改已恢复正常。

错误代码

<when test="item.endRange == '1'">
                            m.score <![CDATA[>=]]> #{item.startRange} and m.score <![CDATA[<=]]> #{item.endRange}
                        </when>

修正后代码

<when test='item.endRange == "1"'>
                            m.score <![CDATA[>=]]> #{item.startRange} and m.score <![CDATA[<=]]> #{item.endRange}
                        </when>

当然也可以使用toString转换为字符串比较

<when test="item.endRange == '1'.toString()">
                            m.score <![CDATA[>=]]> #{item.startRange} and m.score <![CDATA[<=]]> #{item.endRange}
                        </when>