选中并取消选中使用Spring mvc调用Ajax的复选框

时间:2015-02-27 16:07:02

标签: jquery ajax spring-mvc

我正在尝试使用Ajax检查/取消选中检查点,但是它会返回400个错误请求。

任何人都可以帮忙!

在控制器中:

    @RequestMapping("/jsp/check.html") 
    @ResponseBody
    public  ResponseEntity<String> check(@RequestParam Long id){

         String u=SecurityUtils.getUsername();
         User user=userDao.getUser(u).get(0);        
         user.getId();
         Checkpoint cp = userDao.getCheckpoint(id);
         user.getCheckpoints().add(cp);
         userDao.saveUser(user);

        return new ResponseEntity<String>( HttpStatus.OK );

    }


    @RequestMapping("/jsp/uncheck.html") 
    @ResponseStatus(HttpStatus.OK)
    public void uncheck(@RequestParam Long id){   

        User user = userDao.getUser(id);
        Checkpoint cp = userDao.getCheckpoint(id);
        user.getCheckpoints().remove(cp);
        userDao.saveUser(user);
    }

在使用jQuery调用Ajax的display.jsp中,检查并取消选中此代码:

$(function(){
    $("#cp").change(function(){ 
      var checked = $(this).is(':checked');

if(checked){
    $.ajax({
        type: 'POST',
        url: 'check.html',
        data: { "id": checked},
        success: function(data){
        }

    });
}
else
{ uncheck();}

});
});

  function uncheck( id )
   {

    $.ajax({
        type: 'POST',
        url: 'uncheck.html',
        data: { "id": id},
        cache: false,
        success: function(data){
        }
    });

}

1 个答案:

答案 0 :(得分:0)

我建议使用@ModelAttribute代替@RequestParam

public  ResponseEntity<String> check(@ModelAttribute("id") Long id, HttpSession session){
  //
}

同样适用于uncheck方法。