Mybatis中if标签判断不生效解决办法

发布于 2024-09-02  24 次阅读


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>
人生の意味は平凡ですか、それとも素晴らしいですか?
最后更新于 2024-09-02