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);
}
posted @ 2021-11-27 20:02  风去影无踪  阅读(645)  评论(0编辑  收藏  举报