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格式的数据可读性很好,后端也能完全接受到数据
以上就是两种数据接收的方式
SpringMVC学习笔记:表单提交 参数的接收的更多相关文章
- 第6章—渲染web视图—SpringMVC+Thymeleaf 处理表单提交
SpringMVC+Thymeleaf 处理表单提交 thymleaf处理表单提交的方式和jsp有些类似,也有点不同之处,这里操作一个小Demo,并说明: 1.demo的结构图如下所示: pom.xm ...
- 输入值/表单提交参数过滤有效防止sql注入的方法
输入值/表单提交参数过滤,防止sql注入或非法攻击的方法: 代码如下: /** * 过滤sql与php文件操作的关键字 * @param string $string * @return strin ...
- JavaWeb学习日记----表单提交方式
1.表单提交方式 (1) 使用input控件中的submit提交 代码如下: <!DOCTYPE html> <html lang="en"> <he ...
- php学习笔记——表单
13.表单 1)GET vs. POST GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value ...
- nodejs学习之表单提交(1)
nodejs作为一门后端语言,接触的最多的是它的框架,但是它本身的api我觉得更是非学不可,所有才有了这篇文章 表单提交是最基本的也是最实用的入门实例 HTML: <!DOCTYPE html& ...
- [html5] 学习笔记-表单新增元素与属性
本节讲的是表单元素的form,formaction属性,frommethod,formenctype属性,formtarget,autofocus属性,required,labels属性. 1.for ...
- HTML5 学习笔记 表单属性
HTML5新的表单属性 HTML5 的form和input 标签添加了几个新的属性 <form>新属性 autocomplete novalidate input 新属性 autocomp ...
- AngularJs学习笔记-表单处理
表单处理 (1)Angular表单API 1.模板式表单,需引入FormsModule 2.响应式表单,需引入ReactiveFormsModule (2)模板式表单 在Angular中使用for ...
- Android实现表单提交,webapi接收
1.服务端采用的是.net的WEBAPI接口. 2.android多文件上传. 以下为核心代码: package com.example.my.androidupload; import androi ...
随机推荐
- 百度浏览器 UserAgent
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 BIDUBrowser ...
- JavaScript 中this的实现原理
学懂 JavaScript 言语,一个标志就是了解下面两种写法,或许有不一样的成果. <blockquote "=""> var obj = { foo: f ...
- python基础入门学习简单程序练习
1.简单的乘法程序 i = 256*256 print('The value of i is', i) 运行结果: The value of i is 65536 2.执行python脚本的两种方式 ...
- ssh 与远程机器保持心跳(linux)
文件/etc/ssh/ssh_config末尾加上: TCPKeepAlive yes ServerAliveInterval
- Selenium 定位元素原理,基本API,显示等待,隐式等待,重试机制等等
Selenium 如何定位动态元素: 测试的时候会遇到元素每次变动的情况,例如: <div id="btn-attention_2030295">...</di ...
- 设置获取cookie,setCookie,getCookie
设置cookie: function setCookie(name,value) { var Days = 30; var exp = new Date(); exp.setTime(exp.getT ...
- 如何彻底卸载mysql(xp)
如何彻底卸载mysql 完整的卸载MySQL 5.x 的方法: 1.控制面板里的增加删除程序内进行删除 2.删除MySQL的安装文件夹C:\Program Files\MySQL,如果备份好,可以直接 ...
- 英文谚语:Take that with a grain of salt
take sth. with a grain of salt 这个习语的字面意思是“和一撮盐一起吃下去”,为什么要与盐一起吃呢? 据说这个习语要追溯到罗马时代,罗马将军庞培曾发现一种解毒剂,必须和着一 ...
- HDU 1698 Just a Hook(线段树区间更新查询)
描述 In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of the heroes ...
- [Java笔记]面向对象-单例模式
单例模式 目标 使JVM中最多只有一个该类的实例,以节省内存.缺点:只能建一个该类的实例. 实现 具体实现思路: 1构造方法私有化//故在外面不能new很多次 2对外提供一个公开的静态的类方法,获取类 ...