SpringMVC对于传入参数是数组形式的参数该怎样处理

先跟大家介绍一下我之前的开发经验。之前做过一个简单查询展示的系统,输入一个人的一些资料,查询符合条件的数据,具体框架大概是这样:
如图,四个查询条件,输入相应的查询条件,会返回符合要求的结果。
图片说明

这是传入后台姓名、客户号、日期等参数的形式;
图片说明

这是后台controller的写法;
图片说明

这是实体类Bean的写法;
图片说明

这是Mapper的写法。
图片说明
现在小弟需要实现一个十分复杂的查询/筛选功能,需要将数据库中符合多个条件的结果全部返回过来。具体的界面是这样的;
图片说明
而对于传输的查询参数,对于同一名称的查询参数可能有多个值,因此查询参数是一个数组:
图片说明
图片说明
如图,像这样的形式,该如何修改后台的Bean、controller和mapper?还请大牛指点指点,谢谢!

后台用request.getParameterValues('roleIds')可以获取到一个String数组的

本来就支持数组参数,你直接在后台接就好了图片说明
查询时传入一个Mapper传一个bean,把数组参数作为bean的一个属性,在mapper.xml 文件里面 in 使用for循环把参数拼起来就好了

Spring MVC本来就支持数组参数,把bean的属性变成String[]类型就OK了。
不过你也可以通过debug看看,如果bean的PRD_NBR,crl_sts 和 end_dte三个属性写成String类型,传进来的参数值是啥样的。我要是没记错的话应该是一个字符串,内容是由数组里每个字符串拼接而成,中间用逗号隔开(例如图片里面的PRD_NBR,传进来的就是"CR026601,CR026101")。这样的好处是写Mapping的时候应该可以直接写成类似where 属性 in (),可以省去循环了
当然你也可以在页面端把这个数组拼接成方便写Mapping的字符串啦

图片说明
图片说明
可以参考这样的