【问题标题】:How to accept 2D arrays in Spring MVC controller?如何在 Spring MVC 控制器中接受二维数组?
【发布时间】:2013-08-05 03:25:30
【问题描述】:

我正在通过 jQuery Ajax 发出 POST 请求:

$.ajax({
    type: "POST",
    url: opts.save_url,
    data: $(ul_obj).serializeFormList() + "&form_id=" + form_db_id,
});

$(ul_obj).serializeFormList() 创建请求参数的二维数组。 这是传递给 Spring MVC 控制器的参数的屏幕截图:

现在,当我在控制器中处理此问题时,我收到 404 Bad Request for frmb[][] 代码如下:

public @ResponseBody String saveData(@RequestParam(value= "form_id", required = true) String formId, 
                                    @RequestParam(value= "frmb", required = true) String[][] formArray) {

                //Content removed for brevity
                }

处理此请求数据的确切方法是什么?请指导我。我被卡住了。

【问题讨论】:

  • Java 只有整数索引,您发送的是整数 字符串。尝试将它们全部设为整数。

标签: java javascript jquery spring spring-mvc


【解决方案1】:

我看到你正在连接参数

"&form_id=" + form_db_id

你可以对“frmb”做同样的事情

frmb=1,2&frmb=2,3

所以当你尝试使用

获取字符串 [][]
@RequestParam(value= "frmb", required = true) String[][] formArray)

你会得到

formArray = [[1,2],[2,3]]

【讨论】:

    【解决方案2】:

    Java 只有基于索引(整数)的数组:

    所以要么你只使用基于整数的数组来提出你的请求:

     form_Id
     frmb[0][0] input_text
     frmb[0][1] required
     frmb[0][values] sdfsfds
    

    或者您使用其他结构来获取数据:例如包含地图的数组

    @RequestParam(value= "frmb", required = true) Map<String,String>[] formArray
    

    如果您能够修改发送的 json,那么我建议使用 JavaBean 而不是 Map

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 2012-03-19
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 2021-08-27
      相关资源
      最近更新 更多