I have created a JS array like this var detailsArr = new Array();
and pushing some data into this array.
Now i push this array via Ajax to my Spring Controller like this
$.ajax({
type: "POST",
url: "submit",
data: ({detailsArr : detailsArr }),
success: function(html){
alert( "Submitted");
}
});
At the Spring Controller side , i receive this array through the @RequestBody
annotation. The Spring Controller method signature looks like this
public String submit(@RequestBody String body)
But the array when received at the Spring Controller side is basically a String of this format
detailsArr[]=add&detailsArr[]=test1&detailsArr[]=test2&detailsArr[]=test3
I have to manually split this String to get the values, this is a cumbersome process. Is there any way in which I can get the array as it is , so that I just have to iterate over it to get the values.
you should pass your array to server in json format. And convert it by using Json to object converter. you can use Gson
.
client side:
$.ajax({
type: "POST",
url: "submit",
data:JSON.stringify(detailsArr),
success: function(html){
alert( "Submitted");
}
});
server side :
public String submit(@RequestBody String body){
//convert body to array using JSONLib, FlexJSON or Gson
}
When passing it to your controller, pass it like this:
data:JSON.stringify(detailsArr);
At your controller, you can then decode the JSON received.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With