Mybatis中if标签如下写if判断失效
//失效
//<choose/><when>标签同样 有其问题
<if test="flag == '1'">
...
</if>
<if test="flag == '2'">
...
</if>
原因:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,'0'会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。
解决办法如下
1.加.toString
<if test="flag == '1'.toString() ">
...
</if>
<if test="flag == '2'.toString() ">
...
</if>
2.单引号 换成双引号
<if test='flag == "1" '>
...
</if>
<if test='flag == "2" '>
...
</if>
3.java 传值为 数值类型 Integer int之类的
<if test="flag == 1 ">
...
</if>
<if test="flag == 2 ">
...
</if>
Comments NOTHING