前台页面内容,注意这里的类型为字符串类型的数字
<li>
<label>支付类型:</label>
<form:select path="payType" class="input-medium">
<form:option value="">全部</form:option>
<form:option value="1">线上支付</form:option>
<form:option value="3">线下支付</form:option>
</form:select>
</li>
后台 MVC 接收参数:
Class RefundLog {
....
/**
* 支付类型 1:线上支付服务,3:线下支付服务
*/
private String payType;
.....
}
public String refundOrderList(RefundLog refundLog, HttpServletRequest request, HttpServletResponse response, Model model) {
.....
}
此时 mybatis 中使用常规的字符串判断,不会进入条件,如下,错误的写法:
<if test="payType == '1'">
AND rl.pay_type in ('1','ZFBA','WEIX')
</if>
经过调试发现,SQL 未进入判断!!!
正确的写法如下:
将字符串数字toString 一下!!!!
<if test="payType == '1'.toString()">
AND rl.pay_type in ('1','ZFBA','WEIX')
</if>
搞定!!