zoukankan      html  css  js  c++  java
  • Spring Cloud 接收FormData、JSON传参【数组、实体、文件】

    一、FormData接收参数

    实体类

    import lombok.Data;
    import java.io.Serializable;
    
    @Data
    public class User implements Serializable {
        private String username;
        private Integer age;
    }

    1、实体接收

    请求html代码

    <form action="/user/formDataModel" method="post" enctype="multipart/form-data">
        <input type="text" name="username" value="wh">
        <input type="text" name="age" value="1">
        <button type="submit">提交请求</button>
    </form>
    

    后端接收代码

     /**
         * FormData接收(实体)
         * @param user
         * @return
         */
        @RequestMapping("/formDataModel")
        public String formDataModel(User user){
            return "OK";
        }
    

    2、接收实体加文件

    实体类

    import lombok.Data;
    import org.springframework.web.multipart.MultipartFile;
    
    import java.io.Serializable;
    
    @Data
    public class User implements Serializable {
        private String username;
        private Integer age;
        private MultipartFile file;
    }

    请求html代码

    <form action="/user/formDataModel" method="post" enctype="multipart/form-data">
        <input type="text" name="username" value="wh">
        <input type="text" name="age" value="1">
        <input type = "file" name = "file" id = "file" />
        <button type="submit">提交请求</button>
    </form>
    

    后端接收代码

    /**
         * FormData接收数组(实体+文件)
         * @param user
         * @return
         */
        @RequestMapping("/formDataModelAndFile")
        public String formDataModelAndFile(User user){
            return "OK";
        }
    

    3、数组实体中包含文件

    请求html代码

    <form id="uploadForm" enctype = "multipart/form-data">
        <input type = "file" name = "file" id = "file" />
        <input type = "button" id = "btnSave" onclick = "uploadSubmit()" value="提交"/>
    </form>
    </body>
    <script>
        function uploadSubmit() {
            // var formData = new FormData(document.getElementById('uploadForm'));
            const postData = new FormData();
            let checklist = [
                {
                    username: '2221',
                    age: '88',
                    file: document.getElementById('file').files[0]
                },
                {
                    username: '1111',
                    age: '881111',
                    file: document.getElementById('file').files[0]
                }
            ];
            console.log( document.getElementById('file').files[0])
            for (let i = 0; i < checklist.length; i++) {
                postData.append("orders[" + i + "].username", checklist[i].username);
                postData.append("orders[" + i + "].age", checklist[i].age);
                postData.append("orders[" + i + "].file", checklist[i].file);
            }
    
            $.ajax({
                url: "http://localhost:9090/user/FormDataUser",
                type: "post",
                data: postData,
                dataType: "json",
                processData: false,
                contentType: false,
                success: function (result) {
                    console.log("上传成功");
                },
                error: function (a, b, c) {
                    console.log("失败了");
                },
                complete: function () {
                    console.log("请求最后处理的方法");
                },
            })
    
            // var request = new XMLHttpRequest();
            // request.open("POST", "http://localhost:9090/user/FormDataUser")
            // request.send(postData);
        }
    </script>
    

    后端接收

     /**
         * FormData接收数组(数组中实体包含文件)
         * @param request
         * @param userForm
         * @return
         */
        @RequestMapping("/FormDataUser")
        public String testFormData(HttpServletRequest request,@ModelAttribute("userForm") UserVo userForm){
            System.out.println("111111=====================11111111");
            return "OK";
        }
    

    实体

    import lombok.Data;
    
    import java.util.List;
    
    @Data
    public class UserVo {
    
        private List<User> orders;
    }
    
    import lombok.Data;
    import org.springframework.web.multipart.MultipartFile;
    
    import java.io.Serializable;
    
    @Data
    public class User implements Serializable {
        private String username;
        private Integer age;
        private MultipartFile file;
    }
    

     二、JSON数组接收参数

    postman请求参数,注:选择raw、JSON(application/json),和json格式的规范书写

    后端接收代码,注:标签@RequestBody的使用

    /**
         * JSON数组接收参数
         * @param list
         */
        @RequestMapping("testJson")
        public void testFast(@RequestBody List<User> list){
            System.out.println("===================");
        }
    

      

     

     
  • 相关阅读:
    ZOJ-2788 Panic Room 【最小割】
    易采群人工智能
    kaggle 入门比赛:使用随机森林解Bag of Words Meets Bags of Popcorn解题报告
    论Python爬虫与MySQL数据库交互的坑
    使用改良版多值覆盖Dancing link X (舞蹈链)求解aquarium游戏
    使用修改版Dancing link X (舞蹈链)求解aquarium游戏
    使用Chrome无头浏览器获取puzzle team club解谜游戏的谜面
    使用深度优先搜索DFS求解star battle游戏
    使用Dancing link X (舞蹈链)求解dominosa游戏
    参加天池Flink TPC-DS性能优化竞赛实况(docker环境搭建与ubuntu容器内编译篇)
  • 原文地址:https://www.cnblogs.com/wangdahui/p/14681860.html
Copyright © 2011-2022 走看看