控制器无法识别来自 ajax 的 @requestparam
controller is not recognizing @requestparam from ajax
我正在尝试将 json 从 ajax 发送到 springboot 控制器,但出现错误 [org.springframework.web.bind.MissingServletRequestParameterException:必需项 [] 参数 'myJsonString[]' 不存在]
下面是我的 ajax 代码
$.ajax({
type: "POST",
url: "/DBA_TOOLS/admin/tracker",
data: {myJsonString:myJsonString},
dataType: "json",
success: function (data){
if(data.status == "SUCCESS"){
alert("AJAX request successfully completed:"+JSON.stringify(data));
}else{
console.log('Error Msg'+JSON.stringify(data));
}
console.log('Error Msg'+data.message+''+JSON.stringify(data));
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR.status);
console.log(textStatus);
console.log(errorThrown);
},
complete: function() {
}
});
下面是我的控制器
@PostMapping(value="/tracker")
public int traker(@RequestParam(value="myJsonString[]") Item[] myJsonString){
System.out.println("getting somethig from tracker");
int count=0;
try{
for(Item item : myJsonString){
System.out.println("User is updating item id "+item.getName());
//count+= ggProcessRepository.changeAlert(row,isActive);
}
}catch(Exception e){
System.out.println("Exception Occured"+e);
}
return count;
}
我尝试使用 requestparam required false 并且它让块工作但是如何将 ajax 数据获取到我的 requestparam 对我来说是一个挑战。
在浏览器调试中,我看到发送的表单数据是 --> myJsonString: [{"name":"product 2","price":20,"quantity":1},{"name": "产品 3","价格":30,"数量":1}]
如果将其更改为:
会发生什么
traker(@RequestParam(value="myJsonString")
我正在尝试将 json 从 ajax 发送到 springboot 控制器,但出现错误 [org.springframework.web.bind.MissingServletRequestParameterException:必需项 [] 参数 'myJsonString[]' 不存在]
下面是我的 ajax 代码
$.ajax({
type: "POST",
url: "/DBA_TOOLS/admin/tracker",
data: {myJsonString:myJsonString},
dataType: "json",
success: function (data){
if(data.status == "SUCCESS"){
alert("AJAX request successfully completed:"+JSON.stringify(data));
}else{
console.log('Error Msg'+JSON.stringify(data));
}
console.log('Error Msg'+data.message+''+JSON.stringify(data));
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR.status);
console.log(textStatus);
console.log(errorThrown);
},
complete: function() {
}
});
下面是我的控制器
@PostMapping(value="/tracker")
public int traker(@RequestParam(value="myJsonString[]") Item[] myJsonString){
System.out.println("getting somethig from tracker");
int count=0;
try{
for(Item item : myJsonString){
System.out.println("User is updating item id "+item.getName());
//count+= ggProcessRepository.changeAlert(row,isActive);
}
}catch(Exception e){
System.out.println("Exception Occured"+e);
}
return count;
}
我尝试使用 requestparam required false 并且它让块工作但是如何将 ajax 数据获取到我的 requestparam 对我来说是一个挑战。
在浏览器调试中,我看到发送的表单数据是 --> myJsonString: [{"name":"product 2","price":20,"quantity":1},{"name": "产品 3","价格":30,"数量":1}]
如果将其更改为:
会发生什么traker(@RequestParam(value="myJsonString")