一、前言
今天在写一个需要对传值orderSort进行0/1判断 来执行order by 的asc/desc来实现正序倒序操作,经过各方排查,发现orderSort在判断时总是不生效(排除传值问题下),遂锁定test使用问题
1. 先说解决办法
①在需要判断的值后面加.toString(),
②在判断相等时使用.equals()
2. 问题
在test语法中使用判断时,尽管传来的orderSort的值是varchar类型的‘0’或‘1’,仍是按照整型来判断,所以不起作用,需要对其进行转换使用toString方法解决。
问题代码:
<if test="orderSort=='0'">
ORDER BY rank ASC
</if>
<if test="orderSort=='1'">
ORDER BY rank DESC
</if>
修改后代码:
<if test="orderSort=='0'.toString()">
ORDER BY rank ASC
</if>
<if test="orderSort=='1'.toString()">
ORDER BY rank DESC
</if>