繁体   English   中英

Spring MVC Ajax:将空数组传递给 Ajax 控制器

[英]Spring MVC Ajax: Passing Empty Array to Ajax Controller

我有以下在接收非空数组时效果很好,

$.ajax({
  url: "ajaxController",
  dataType: "json",
  type: "get",
  data: {
       'term': request.term,
       'exclude': ["45","66"]
  },

控制器(注意 RequestParam 值中的[] -- 结果在 String[] 中):

public List<KeyValueBean> getChoices(String term, 
                                     @RequestParam(value = "exclude[]") 
                                        String[] exclude)  {
}                               

但是,如果我在同一代码中传递一个空数组(有时会发生这种情况),它会中断:

'exclude': []

或者

'exclude': JSON.stringify([])

错误:

org.springframework.web.bind.MissingServletRequestParameterException: Required 
String[] parameter 'exclude[]' is not present

如果你注意这个错误,它说你的请求参数exclude不能为空。 如果您有时需要可以发送空数组,您可以通过这种方式将您的参数标记为可选(非必需):

@RequestParam(required = false, value = "exclude[]")

问题可能是因为您在传递名为“exclude”的对象时使用value="exclude[]"传递了 @RequestParam。

所以,它实际上应该是:

public List<KeyValueBean> getChoices(String term, 
                                 @RequestParam(value = "exclude") 
                                    String[] exclude)  {
}   

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM