有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在SpringMVC中从ajax请求中检索包含名称-值对的java数组

我无法在Spring控制器中检索“值”。有人能解释我做错了什么吗

Ajax请求

fields[fieldID] = { 'name': fieldName, 'value': fieldValue };
fieldID++;
$.ajax({ url: '/lic/register.html',
         data: { 'send': 'login-form', 'values': fields},
         type: 'get',
         complete : function(){
             alert(this.url)
         },
         success: function( output ) {
             alert("success");
         },

      });

弹簧控制器

@RequestMapping(value="/register.html", method = RequestMethod.GET)
@ResponseBody
public String suckRegister(HttpServletRequest request,HttpServletResponse response,@RequestParam(value="values", required=false) String[] objectValues) {
    System.out.println(objectValues.length); // returning null
}

共 (1) 个答案

  1. # 1 楼答案

    似乎不需要“发送”:“登录表单”,除非另一个请求参数在控制器中接受该值

    试试看

    $.ajax({ url: '/lic/register.html',
             data: { 'values': fields},
             type: 'get',
             dataType: "json",
             contentType: "application/json",
             complete : function(){
                 alert(this.url)
             },
             success: function( output ) {
                 alert("success");
             },
    
          });
    

    你的控制器应该接受

    @RequestMapping(value="/register.html", method = RequestMethod.GET)
    @ResponseBody
    public String suckRegister(HttpServletRequest request,HttpServletResponse response,@RequestParam(value="values[]", required=false) Object[] objectValues) {
        System.out.println(objectValues.length); // returning null
    }