SSM整合html使用Ajax时,success获取不到controller类的返回值的问题解决。

版权声明:本文为博主原创文章,未经博主允许不得转载。 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对象输出指定格式的数据。

 

猜你喜欢

转载自blog.csdn.net/qq_22078107/article/details/85779429
今日推荐