zoukankan      html  css  js  c++  java
  • springmvc中 @RequestBody 接收参数问题

    从前台用js向 springmvc中传递 json。在controller中转换为java对象需要用 @RequestBody 注解。但是传递时有几个问题可能会导致无法访问。

    1.ajax中必须用json对象:JSON.stringify({"name":name,"age":age,"sex":sex})

    2.ajax中必须设置 contentType:"application/json",

    3.否则会报 415或者400错误。

    直接上代码:

    前台:

    
    <html>
      <head>
        <title></title>
      </head>
      <body>
      <div>
        name:<input type="text" id="name"> <br>
        sex:<input type="text" id="sex"><br>
        age:<input type="text" id="age"><br>
        <button type="button" id="btn">提交</button>
      </div>
      <script src="js/jquery-3.3.1.js"></script>
      <script>
    
        $("#btn").click(function(){
            var name = $("#name").val();
            var sex = $("#sex").val();
            var age = $("#age").val();
            $.ajax({
                type: "POST",
                url: "test03",
                contentType:"application/json",
                data: JSON.stringify({"name":name,"age":age,"sex":sex}),
                success: function(data){
                    if(data.msg==1){
                        alert("success");
                    }else{
                        alert("error");
                    }
                }
            });
        })
      </script>
      </body>
    </html>
    
    

    controller

       @ResponseBody
        @RequestMapping("/test03")
        public Map<String,Object> test03(@RequestBody User user){
    
            Map<String,Object> map = new HashMap<>();
            if(user!=null){
                map.put("msg","1");
            }else{
                map.put("msg","0");
            }
    
            return map;
        }
    

    实体类

    public class User {
    
        private String name;
        private int age;
        private String sex;
    
        public User() {
        }
    
        public User(String name, int age, String sex) {
            this.name = name;
            this.age = age;
            this.sex = sex;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    }
    
    
    
  • 相关阅读:
    Eclipse consle 输出语句中,误输中文,假死问题
    Eclipse 快捷键 (最实用)
    mysql 4种启动方式
    mysql索引的类型和优缺点
    Windows上 使用Composer安装tp5
    php 更新配置文件
    可视化工具连接Linux上的redis
    HttpClient 4 教程 第3章 HTTP状态管理
    HttpClient 4 教程 第2章 连接管理
    HttpClient 4 教程 第1章 基础
  • 原文地址:https://www.cnblogs.com/jixu8/p/11246183.html
Copyright © 2011-2022 走看看