Postman

43 阅读2分钟

一、简单参数

1、原始方式

在原始的web程序中,获取请求参数,需要通过HttpServletRequest 对象手动获取。

//原始方式
    @RequestMapping("/simpleParam")
    public String simpleParam(HttpServletRequest request){
        //获取请求参数
        String name = request.getParameter("name");
        String ageStr = request.getParameter("age");

        int age = Integer.parseInt(ageStr);
        System.out.println(name + ":" + age);
        return "OK";
    }

2、springboot方式

//springboot方式
    @RequestMapping("/simpleParam")
    public String simpleParam(String name, Integer age){
        System.out.println(name + ":" + age);
        return "OK";
    }

如果方法形参名称与请求参数名称不匹配,可以使用 @RequestParam 完成映射。

@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name") String userName, Integer age){
    System.out.println(userName + ":" + age);
    return "OK";
}

二、实体参数

1、简单实体对象

简单实体对象:请求参数名与形参对象属性名相同,定义POJO接收即可

//2、实体参数
@RequestMapping("/simplePojo")
public String simplePojo(User user){
    System.out.println(user);
    return "OK";
}

2、复杂实体对象

复杂实体对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数。

public class Address {
    private String province;
    private String city;
}    
public class User {
    private String name;
    private String age;
    private Address address;
}    
@RequestMapping("/complexPojo")
public String complexPojo(User user){
    System.out.println(user);
    return "OK";
}

GET请求:

image.png 结果:

image.png

三、数组集合参数

1、数组参数

数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数

//数组集合参数
@RequestMapping("/arrayParam")
public String arrayParam(String[] hobby){
    System.out.println(Arrays.toString(hobby));
    return "OK";
}

2、集合参数

集合参数:请求参数名与形参集合名称相同且请求参数为多个,@RequestParam 绑定参数关系

@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> hobby){
    System.out.println(hobby);
    return "OK";
}

四、日期参数

日期参数:使用 @DateTimeFormat 注解完成日期参数格式转换

@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
    System.out.println(updateTime);
    return "OK";
}

输入和结果为:

image.png

image.png

五、JSON参数

JSON参数:JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用 @RequestBody 标识

@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user){
    System.out.println(user);
    return "OK";
}

输入和结果为:

image.png

image.png

六、路径参数

路径参数:通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用 @PathVariable 获取路径参数

//路径参数
@RequestMapping("/path/{id}")
public String pathParm(@PathVariable Integer id) {
    System.out.println(id);
    return "OK";
}

@RequestMapping("/path/{id}/{name}")
public String pathParm2(@PathVariable Integer id, @PathVariable String name){
    System.out.println(id);
    System.out.println(name);
    return "OK";

输入和结果为:

image.png

image.png