Get an array containing a pair of name values ​​from ajax request in spring mvc

I cannot get "values" in my Spring controller. Can someone explain what I'm doing wrong?

Ajax request

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");
         },

      });

Spring controller

@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
}
+4
source share
1 answer

There seems to be no need for 'send': 'login-form' unless another request parameter accepts this value in your controller

Try

$.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");
         },

      });

And your controller should accept

@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
}
0
source

Source: https://habr.com/ru/post/1657341/


All Articles