SpringMVC,ajax

主要区分@RequestBody,@ResponseBody
案例
删除,用get操作

前台

else if(obj.event === 'del'){
                layer.confirm('真的删除行么', function(index){
                    $.ajax({
                        url:'${pageContext.request.contextPath}/deleteUser.action',
                        type:'GET',
                        data:{
                            id:obj.data.id
                        },
                        success:function (msg) {
                            if(msg=="1"){
                                layer.msg("删除成功", {icon: 6});
                                setTimeout(function(){
                                    layer.closeAll();//关闭所有的弹出层
                                }, 1000);
                                加载层-风格
                            }else{
                                layer.msg("删除失败", {icon: 5});
                            }
                        }

                    })
                    obj.del();
                    layer.close(index);

                });
            }

后台Controller

       //删除用户
    @ResponseBody
    @RequestMapping(value = "deleteUser.action",method = RequestMethod.GET)
    public int deleteUser(int id)
    {

        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!"+id);
        userService.deleteUser(id);
        return 1;
    }

Post
添加 contentType:“application/json“之后,向后台发送数据的格式必须为json字符串

不添加 contentType:“application/json“的时候可以向后台发送json对象形式

另外,当向后台传递复杂json的时候,同样需要添加 contentType:“application/json“,然后将数据转化为字符串

contentType:'application/json',//告诉后台自己是json字符 data:JSON.stringify(data.field),将数据转换为json
前台

form.on('submit(formDemo)', function(data) {
               $.ajax({
                    url:'${pageContext.request.contextPath}/updateUser.action',
                    type:'post',
                     contentType:'application/json',
                    data:JSON.stringify(data.field),
                    success:function (msg) {
                        alert(msg);
                        if(msg=="1"){
                            layer.closeAll('loading');
                            layer.load(2);
                            layer.msg("修改成功", {icon: 6});
                            setTimeout(function(){
                                layer.closeAll();//关闭所有的弹出层
                                table.reload("test");
                            }, 1000);
                            加载层-风格
                        }else{
                            layer.msg("修改失败", {icon: 5});
                        }
                    }
                })
                return false;
            })

后台

其作用是将方法的返回值以特定的格式写入到response的body区域,进而将数据返回给客户端。当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。
加上@responsebody后,返回结果直接写入HTTP response body中,不会被解析为跳转路径。比如异步请求,希望响应的结果是json数据,那么加上@responsebody后,就会直接返回json数据
    @ResponseBody  :
    @ResponseBody
    @RequestMapping(value = "/updateUser.action",method = RequestMethod.POST )
    public int updateUser( @RequestBody User user)
    {
        System.out.printf(user.toString());
        User user1 = userService.UpdateUser(user);
        System.out.printf(user1.toString());
        return 1;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值