从spring mvc中的ajax请求中检索包含名称值对的数组

时间:2016-10-11 05:17:27

标签: java ajax spring model-view-controller

我无法在Spring Controller中检索'values'。谁能解释我做错了什么?

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

      });

Spring控制器

@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 个答案:

答案 0 :(得分:0)

似乎不需要'send':'login-form',除非另一个请求参数在你的控制器中接受该值

尝试,

$.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
}