我正在尝试将 javascript 数组发送到 Spring MVC Controller ..但我得到空值..
我的 JavaScript 代码:
for (var n = 1; n < rowCount; n++) {
cells = rows[n].cells;
data.push([
cells[0].firstElementChild.checked,
cells[1].firstElementChild.value,
cells[2].firstElementChild.value,
cells[3].firstElementChild.value,
cells[4].firstElementChild.value
]);
}
$.ajax({
url: 'addDetails.html',
type:"POST",
data:
{promo : data}
我的 Spring MVC Controller 请求映射:
@RequestMapping("/addDetails")
public @ResponseBody void addEntity(
@RequestParam(value="promo") List<String> promo) throws IOException {
我在促销请求映射中没有获得任何值(value)。请帮助我..谢谢!
最佳答案
POST Body 可以在 RequestBody
中接收,而不是在 RequestParam
中接收,其次,如果您像 {promo: data}
那样传递数组将被转换为 HashMap
或某些 POJO
对象而不是数组列表,因此直接传递数组,如下所示:
$.ajax({
url: 'addDetails.html',
type:"POST",
data:data
并使你的 Controller 像这样:
@RequestMapping("/addDetails", method = {RequestMethod.POST})
public @ResponseBody void addEntity(
@RequestBody List<String> promo) throws IOException {
更新 如需更多数据,您可以创建一个 POJO 类:
public class MyData{
private String lname;
private String lstate;
private String lrta;
private String lse;
private List<String> promo;
... Getters and Setters
}
你的 Controller 应该是:
@RequestMapping("/addDetails", method = {RequestMethod.POST})
public @ResponseBody void addEntity(
@RequestBody MyData myData) throws IOException {
关于javascript - 如何将 javascript 数组发送到 Spring MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60647951/