2015-09-03 2 views
0

Я новичок в ajax. Я нашел много похожих ответов, но я не могу понять, почему мой запрос синтаксически неверен. Вот мой код: Ajax код:передать массив контроллеру пружины через ajax

$(".f-remove-button").click(function(){ 
      console.log("remove-clicked"); 
      var userIds = []; 
      $.each($("input[name='userIds']:checked"), 
      function(){ 
       userIds.push($(this).val()); 
      }); 
      console.log(userIds); 
      var url = "/clubtivity/user/remove-contacts" 
      $.ajax({ 
       type:'POST', 
       url:url, 
       dataType:"json", 
       data:{"userIds":userIds}, 
       success:function(response){ 

       } 
      }); 

     }); 

Спринг контроллер:

@RequestMapping(value = "/remove-contacts", method=RequestMethod.POST) 
@ResponseBody 
public Long[] removeConnections(@RequestParam(value="userIds") String[] userIds, HttpServletRequest request) throws Exception { 
    //some code 
    return null; 
} 

Пожалуйста, помогите мне понять мою ошибку. извините за плохой Английский

ответ

0

RequestParam неверен, вместо этого вы должны использовать @RequestBody. Судя по высокому уровню, вы должны создать объект POJO, содержащий массив.

public class POJO { 

    private String[] userIds; 

    public POJO() { 
    } 

    /** 
    * @return the userIds 
    */ 
    public String[] getUserIds() { 
     return userIds; 
    } 

    /** 
    * @param userIds the userIds to set 
    */ 
    public void setUserIds(String[] userIds) { 
     this.userIds = userIds; 
    } 
} 

    @RequestMapping(value = "/remove-contacts", method=RequestMethod.POST) 
    @ResponseBody 
    public Long[] removeConnections(@RequestBody POJO pojo, HttpServletRequest request) throws Exception { 
     //some code 
     return null; 
    } 
Смежные вопросы