版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_22078107/article/details/85779429
使用ajax对数据库的执行删除,数据可以正常删除,就是controller方法可以执行,但是Ajax的success却接收不到controller类删除方法的返回值。却一直执行Ajax的error。
我的ajax是这样写的:
$.ajax({
type: 'post',
async: false,
url: '/user/deleteUsersForXX_insert.do',
success: function (data) {
alert(data);
},
error:function (data) {
alert("错误!");
}
}
);
controller是这样写的:(不成功的原因是我这个方法没有使用 @ResponseBody 注解)
@RequestMapping("/deleteUsersForXX_insert")
public String deleteUsersForXX_insert(){
List<User> lists=new ArrayList<>();
for (int i = 6; i <7 ; i++) {
User user=new User();
user.setId(i);
user.setPassWord("12345"+i);
user.setUserName("123"+i);
lists.add(user);
}
int i=userService.deleteUsersForXX_insert(lists);
System.out.println("插入成功条数:"+i);
return "删除成功条数:"+i;
}
-
不成功原因有:
1、controller类里面的方法没有使用 @ResponseBody 注解 (一般是这个原因);
2、ajax的异步处理问题(具体参考这个:ajax请求后台,有时收不到返回值的解决办法);
@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据,需要注意的呢,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。