• 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格式的数据可读性很好,后端也能完全接受到数据

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

  • 相关阅读:
    Flex 自定义事件
    ORACLE中date类型字段的处理
    微信公众号开发
    idHTTP最简洁的修改和取得Cookie例子
    使用TidCookieManager得到cookie
    dhttp与IdCookieManager处理登陆过程
    Delphi IdHTTP 设置cookie 和访问后读取Cookie 值(重要collection不需要item索引)
    idhttp与cookie
    delphi inttohex 整型到十六进制
    03006_Servlet简介
  • 原文地址:https://www.cnblogs.com/colin220/p/9532004.html
Copyright © 2020-2023  润新知