Spring MVC接受Content-Type被指定为application/x-www-form-urlencode数据
最近因为维护一个老项目的功能,所以记录下。
当Content-Type:application/x-www-form-urlencode时,其实标准的格式是key-value的形式。不过当请求到后台会转换为key1=value1&key2=value2的形式。会使用?拼在url后面.
准备需要的类及方法:
//@Data使用的是Lombok插件。
@Data
public class Author {
private Integer id;
private String name;
private String phone;
private String address;
}
后端java接受这样的数据可以使用下面的方法:
1、使用实体对象
@PostMapping("/test1")
public void tes1(Author author){
System.out.println("test1结果:"+author);
}
2、使用Map对象
/**
*
* @RequestParam必须加上,不然map不能接收到值
*
*/
@PostMapping("/test2")
public void test2(@RequestParam Map<String,Object> map){
System.out.println("test2结果:"+map.toString());
}
3、使用具体的字段
/**
*
*@RequestParam 可以加也可以不加。都能正常接收值
*/
@PostMapping("/test3")
public void test3(@RequestParam String name,String phone,String address){
Author author=new Author();
author.setName(name);
author.setAddress(address);
author.setPhone(phone);
System.out.println("test3结果:"+author);
}