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并合成查询条件。

posted @ 2020-06-11 11:34  星记事  阅读(1876)  评论(0编辑  收藏  举报