• 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("===================");
        }
    

      

     

     
  • 相关阅读:
    ccnet 配置真折腾
    幻灯片效果代码(asp版本)
    Microsoft Office 服务器系统要求
    取数据库N到M的记录
    [心得]关于iframe页面滚动条。
    和我一起学Windows Workflow Foundation(2)让WF通过参数接收数据 [转]
    新闻图片效果
    AJAX
    和我一起学Windows Workflow Foundation(1)创建和调试一个WF实例 [转]
    关闭父窗口,打开新窗口
  • 原文地址:https://www.cnblogs.com/wangdahui/p/14681860.html
Copyright © 2020-2023  润新知