首页 > 编程语言 > 详细

SpringMVC学习笔记:表单提交 参数的接收

时间:2018-08-25 00:19:12      阅读:629      评论:0      收藏:0      [点我收藏+]

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为数组的单个值;如果是集合,首先在变量名后加上索引值,然后加上此元素的属性名,和后端的对象属性名一一对应好

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

 

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

SpringMVC学习笔记:表单提交 参数的接收

原文:https://www.cnblogs.com/colin220/p/9532004.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!