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



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

$.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)  {
}   

相关内容

  • 没有找到相关文章

最新更新