Spring MVC中 Get请求 前端传递list,Mapper中判断list长度并添加查询条件
前端传入的list参数应该是这样子,不要怀疑,去测试一下吧。SpringMvc会把这样的字符串格式自动转成List:
第一种:
searchDTO{
'waybillNos':'1111', '2222', '3333'
}
第二种:当 waybillNos 是一个json对象时,可以将waybillNos放在url中的参数中
searchDTO{
'aaa':'value'
}
this.$httpExt().get('/receivable/outstanding?waybillNos ='+waybillNos , searchDTO, {
headers: {
'Content-Type': 'application/octet-stream'
},
responseType: 'arraybuffer'
}).then(res => {
doSomething();
});
后台使用对象接收:
public class searchDTO {
private List<String> waybillNos;
}
mapper中在where条件中需要判断list的长度是否>0
<select id="queryPage" resultMap="BaseResultMap"
parameterType="com.dto.SearchDTO">
SELECT * FROM table_name WHERE 1=1
<if test="waybillNos != null and waybillNos.size>0">
AND waybill_no IN
<foreach collection="waybillNos" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
这样,就可以从前端轻松传入list并合成查询条件。