我有以下方法可以很好地接收非空数组
$.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
答案 0 :(得分:1)
如果您注意该错误,则表明您的请求参数exclude
不能为null。如果有时需要发送空数组,可以通过以下方式将参数标记为可选(不需要):
@RequestParam(required = false, value = "exclude[]")
答案 1 :(得分:0)
问题可能是因为在传递名为“ exclude”的对象时,您通过value="exclude[]"
传递了@RequestParam。
因此,实际上应该是:
public List<KeyValueBean> getChoices(String term,
@RequestParam(value = "exclude")
String[] exclude) {
}