我有以下内容,在接收非空数组时效果很好,
$.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) {
}