weixin_40158006
SheldorWsy
采纳率0%
2018-02-14 01:13 阅读 3.6k

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

20

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

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

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

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • hanxianglu 过期的柿子 2018-02-14 02:19

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

    点赞 1 评论 复制链接分享
  • FenTianShenHuo 焚天神火 2018-02-14 01:36

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

    点赞 评论 复制链接分享
  • rabbit_hog rabbit_hog 2018-02-14 02:58

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

    点赞 评论 复制链接分享
  • qq_29777207 张音乐 2018-02-24 06:55

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

    点赞 评论 复制链接分享

相关推荐