菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
6
0

SpringMVC 数组类型的参数: Cannot generate variable name for non-typed Collection parameter type

原创
05/13 14:22
阅读数 19915

我只想安静的传个数组类型的参数, 为什么各种报错...

 

    @DeleteMapping("del")
    @ApiOperation(value = "删除")
    public Integer deleteMan(@RequestBody List idList) {
  ...

不行, 报错:

Cannot generate variable name for non-typed Collection parameter type

 

改吧:

    @DeleteMapping("del")
    @ApiOperation(value = "删除")
    public Integer deleteMan(@RequestBody ArrayList idList) {
  ...

不行, 这回不报错了,  但是连参数都传递不了,  idList 永远值是空的,,  改成 ArrayList<String> 也是不行的

 

改吧

    @DeleteMapping("del")
    @ApiOperation(value = "删除")
    public Integer deleteMan(@RequestBody String[] idList) {
  ...

 

还是不行, 再改:

    @DeleteMapping("del")
    @ApiOperation(value = "删除")
    public Integer deleteMan(String[] idList) {
  ...

这回倒是可以了, 但是, 传参格式不是原来那样的...  期望是["aa", "bb"] , 但现在必须是 aa, bb,  而且 aa/bb 不能有引号, 否则就奇怪了.

 

百度看看, 一堆这样的,  似乎没有我的答案, 大家都没遇见过??

 

bing 的结果也差不多...

 

随便看看吧: 

http://www.docjar.com/html/api/org/springframework/core/Conventions.java.html 

https://blog.csdn.net/z69183787/article/details/52817479?locationNum=7&fps=1

...

好像确实是 后端报错了: 在 Conventions.java 的这个 地方

  1. if (valueClass == null) {  
  2.                 throw new IllegalArgumentException(  
  3.                         "Cannot generate variable name for non-typed Collection parameter type");  

 

 

改吧: 

    @DeleteMapping("del")
    @ApiOperation(value = "删除")
    public Integer deleteMan(@RequestBody List<String> idList) {
  ...

 

这回可以了... 恍然大悟.

 

发表评论

0/200
6 点赞
0 评论
收藏
为你推荐 换一批