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

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

  • 相关阅读:
    bzoj 3438: 小M的作物
    bzoj 4445 [SCOI2015] 小凸想跑步
    hdu 4899 Hero meet devil
    hdu 4898 The Revenge of the Princess’ Knight
    【NOIP1999】拦截导弹
    【OpenJudge】2991:2011 题解
    【cqbzoj】1785:残缺棋盘上放车的方案数 --状压dp --输入毁一生
    【cqbzoj】:1330 Prime DP(Ahio2001 质数和分解)
    【Openjudge:Noi】7891:一元三次方程求解 c++
    【USACO FEB 2010 SILVER】吃巧克力(Chocolate Eating)
  • 原文地址:https://www.cnblogs.com/colin220/p/9532004.html
Copyright © 2011-2022 走看看