前端传递数据的方式不同,java 也要使用不同的方式来接收数据。
三种方式
前端传入的数据格式 | 后端接收方式 |
---|---|
url中的参数 | @PathVariable |
用 params 传递数据 | @RequestParam |
用 data 传递数据 | @RequestBody |
下面是三个例子。
1. url 中的参数
前端请求地址格式如下
1 2 | url:'/delete/'+id, method:'post', |
如请求的具体地址是 http://localhost:8099/delete/1
。
那么,java 接收参数格式如下,需要用 @PathVariable
来接收
1 2 | @RequestMapping (value = "/delete/{id}" , method = RequestMethod.POST) public Boolean delete( @PathVariable ( "id" ) Integer id) |
2. 请求中用 params 传递数据
前端请求地址格式如下
1 2 3 4 5 6 | url:'/list/'+id, method:'get', params: { pageNum: 1, pageSize: 10 } |
假如请求的具体地址是 http://localhost:8099/list/1 ,请求的参数是 pageNum 和 pageSize 。
那么,java 接收参数格式如下,需要用 @RequestParam 来接收单个的参数,一个 @RequestParam 接收一个参数。@RequestParam 中客户以设置接收数据的默认值
1 2 3 4 5 | @RequestMapping (value = "/delete/{id}" , method = RequestMethod.POST) public List<object> list( @PathVariable ( "id" ) Integer id, @RequestParam (value = "pageNum" , defaultValue = "1" ) Integer pageNum, @RequestParam (value = "pageSize" , defaultValue = "5" ) Integer pageSize) </object> |
3. 请求中用 data 传递数据
request payload
: 提交的数据是列表。
前端请求地址格式如下
1 2 3 4 5 6 7 | url:'/create', method:'post', data: { name: "手机", price: 1000, color: “white” } |
假如请求的具体地址是 http://localhost:8099/create
。
那么,java 接收参数格式如下,需要用 @RequestBody
,并用一个对象来接收数据。
1 2 | @RequestMapping (value = "/create" , method = RequestMethod.POST) public Boolean create( @RequestBody Product product) |
使用对象来接收数据时,接收数据的对象其属性的名字需要和前端传过来的数据名字对应。
接收对象 Product
类,是一个实体类,内容如下:
1 2 3 4 5 6 | public class Product { private String name; private Integer price; private String Color; // 省略 get/set 函数 } |
标签:
java接收数据的方式