zoukankan      html  css  js  c++  java
  • SpringMVC:表单提交 参数的接收

    SpringMVC可以接收原生form表单和json格式数据

    有一个名为Book的model,其中的属性如下:

    字符串类型的name,数字类型的price,数组类型的cover,集合类型的authors,其中集合类型中的元素又是一个Author对象,那么前端需要发送什么样的数据才能完整的封装成一个Book对象呢

    如果对SpringMVC的不太熟悉可以看看我的这篇博客https://www.cnblogs.com/colin220/p/9508815.html

    首先是form表单数据(编码方式为application/x-www-form-urlencoded)

    先看看controller代码

    @Controller
    public class BookController {
    
        @PostMapping("/book/save")
        public ResponseEntity<?> save(Book book){
            System.out.println(book.toString());
           return ResponseEntity.ok("receive");
        }
    }

    controller代码很简单,接受参数就是刚才的Book对象

    用postman模拟表单发送数据,原生form表单只能发送key-value格式的数据

    如上图所示,如果是数组,需要key值为数组的变量名,value为数组的单个值,其实如果是数组也可以写成 cover: one, two, three 这样的形式,springMVC可以解析成数组;如果是集合,首先在变量名后加上索引值,然后加上此元素的属性名,和后端的对象属性名一一对应好

    form表单还可以上传图片 文档 视频等格式,一般使用ajax异步上传到图片服务器,然后返回图片在图片服务器上的url,并提交图片的url

    Json格式数据提交

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。JSON可由两种结构构建:键值对的集合(a collection of name/value pairs)和有序的值的集合(an ordered list of values)

    用Json可以传递很复杂的数据,仍然以上面的Book对象为例,需要传递哪些形式的数据呢

    先看看controller方法

    @Controller
    public class BookController {
        
        @PostMapping("/book/keep")
        public ResponseEntity<?> keep(@RequestBody Book book) {
            System.out.println(book);
            return ResponseEntity.ok("done");
        }
    }

    参数为Book对象,加了@ReqeustBody就可以接受Json格式的数据

    用postman发送json数据

    如上图所示,json格式的数据可读性很好,后端也能完全接受到数据

    以上就是两种数据接收的方式

  • 相关阅读:
    F. Maximum White Subtree 树形dp*换根
    D
    E
    两圆相交板子
    lucass定理
    高精度求组合数
    康托展开与康托逆展开
    FFT变换
    Codeforces Round #625 Div. 1 Problem C
    E.Multiply Pollard_rho质因数分解
  • 原文地址:https://www.cnblogs.com/colin220/p/9532004.html
Copyright © 2011-2022 走看看