记录一下Mybatis中的if标签使用时遇到的问题


前言

今天在项目中进行查询时使用了if标签,遇到了问题:

开始时拉过代码来的时候是这样的

<if test="posType !=null and posType !='' posType!='0'">

提示:以下是本篇文章正文内容,下面案例可供参考

一、if标签遇到的问题

当使用这个标签进行查询时,我发先无论传什么值,都会进入if标签内
<if test="posType !=null and posType !='' posType!='0'">

后来,因为前端posType的值是0,2,3,不存在没有null的情况,所以我就把前面判断null和空值判断去掉了

<if test="posType!='0'">

发现这时还是不行,于是我在论坛里找了找,发现了下面的问题

二、if标签中""和’'的问题

字符串等于条件的两种写法:

如果你外层使用""双引号,内层用''单引号
内层单引号必须使用toString()进行字符串的转换

<if test="posType!='0'.toString()">

如果你外层使用''单引号,内层用""双引号

<if test='posType!="0"'>

这样总算是可以完成了
在这里插入图片描述

三 、总结

如果if标签中不需要进行控制判断,那么直接进行值判断只需要注意里面的问题
如果需要进行控制判断,我的建议是:

<if test="posType !=null and posType !=''">
	<if test='posType != "0"'>
	</if>
</if>

如果在一个标签里先进行了控制判断,那么后面的值条件判断就会无效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值