SpringMVC Ajax两种传参方式

1、采用@RequestParam或Request对象获取参数的方法

注:contentType必须指定为:application/x-www-form-urlencoded

    @ResponseBody
    @RequestMapping(value = "/insert", method = RequestMethod.POST)
    public HttpResult insert(HttpServletRequest request) {
//        @RequestParam("LoginName") String LoginName
        HttpResult result = new HttpResult();
        Users users = new Users();
        users.setUserId(4);
        users.setRoleId(Integer.parseInt(request.getParameter("RoleId")));
        users.setLoginName(request.getParameter("LoginName"));
        users.setLoginPassword("123456");
        users.setUserName(request.getParameter("UserName"));
        users.setMobilePhone(request.getParameter("MobilePhone"));
        users.setEmail(request.getParameter("Email"));
        users.setIsActive("0");
        users.setOrgId(Integer.parseInt(request.getParameter("OrgId")));
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
        users.setCreateTime(df.parse(df.format(new Date()),new ParsePosition(0)));

        int i = this.userService.insertSelective(users);
        if(i>0){
            result.setState(ResultType.success.toString());
            result.setMessage("数据插入成功!");
        }else{
            result.setState(ResultType.error.toString());
            result.setMessage("数据插入失败!");
        }
        return result;
    }

ajax代码

                $.ajax({
                    url: '../user/insert',
                    type: 'POST',
//                     data: JSON.stringify({
//                              "loginName": $('#inputLoginName').val(),
//                              "userName": $('#inputUserName').val(),
//                              "mobilePhone": $('#inputMobilePhone').val(),
//                              "email": $('#inputEmail').val(),
//                              "roleId": $('#selectRole').val(),
//                              "orgId": $('#selectOrg').val()
//                      }),  
                     data: {
                         LoginName: $('#inputLoginName').val(),
                         UserName: $('#inputUserName').val(),
                         MobilePhone: $('#inputMobilePhone').val(),
                         Email: $('#inputEmail').val(),
                         RoleId: $('#selectRole').val(),
                         OrgId: $('#selectOrg').val()
                     },
                     contentType: 'application/x-www-form-urlencoded',
//                     contentType: 'application/json',
                    dataType: "json",
                    success: function (result) {
                        alert(result.message);
                        $("#myModal").modal("hide");
                        oTable.fnDraw();
                    },
                    error: function (err) {
                        alert("error");
                    }
                });

2、@RequestBody 接收对象

注:contentType为application/json

    @ResponseBody
    @RequestMapping(value = "/insert", method = RequestMethod.POST)
    public HttpResult insert(@RequestBody Users users) {
        HttpResult result = new HttpResult();

        int i = this.userService.insertSelective(users);
        if(i>0){
            result.setState(ResultType.success.toString());
            result.setMessage("数据插入成功!");
        }else{
            result.setState(ResultType.error.toString());
            result.setMessage("数据插入失败!");
        }
        return result;
    }

ajax请求

                $.ajax({
                    url: '../user/insert',
                    type: 'POST',
                     data: JSON.stringify({
                              "loginName": $('#inputLoginName').val(),
                              "userName": $('#inputUserName').val(),
                              "mobilePhone": $('#inputMobilePhone').val(),
                              "email": $('#inputEmail').val(),
                              "roleId": $('#selectRole').val(),
                              "orgId": $('#selectOrg').val()
                      }),  
                    contentType: 'application/json',
                    dataType: "json",
                    success: function (result) {
                        alert(result.message);
                        $("#myModal").modal("hide");
                        oTable.fnDraw();
                    },
                    error: function (err) {
                        alert("error");
                    }
                });

参考博客: SpringMVC Ajax 获取参数的方法

参考博客:Spring MVC无法获取ajax POST的参数和值

参考博客:@RequestBody和@ResponseBody的简单使用接收JSON(接收json数据)

详解,参考博客:@RequestBody, @ResponseBody 注解详解(转)

注:JavaScript对象变量对应pojo对象私有变量

原文地址:https://www.cnblogs.com/bmbh/p/6829138.html