mybatis <if>标签判断不生效

心已赠人 2023-10-06 22:24 166阅读 0赞

原if标签写法

  1. <if test="type == '1'">
  2. <!--内部逻辑-->
  3. </if>

这种情况不生效,原因是mybatis是用OGNL表达式来解析的,在OGNL的表达式中,’0’会被解析成字符(而我传入的type却是string),java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。

解决方法

  1. <!--第一种解决方案,加上.toString()-->
  2. <if test="type == '1'.toString()">
  3. <!--内部逻辑-->
  4. </if>
  5. <!--第二种解决方案,将单引号缓冲双引号-->
  6. <if test='type == "1"'>
  7. <!--内部逻辑-->
  8. </if>

发表评论

表情:
评论列表 (有 0 条评论,166人围观)

还没有评论,来说两句吧...

相关阅读