(七)Spring Boot Controller的請求引數獲取

村口老師傅發表於2020-12-12

Controller層獲取請求引數的方式介紹

1、Controller方法的引數名稱和請求的引數名稱相對應

適用場景

只適用get請求

例項

請求例子:http://127.0.0.1:8888/study/param/add_string?name=小米&age=10

@RequestMapping(path = "/add_string", method = RequestMethod.GET)
public User add_String(String name,Integer age)
{
    User user = new User();
    user.setName(name);
    user.setAge(age);
    return user;
}

2、使用HttpServletRequest 物件獲取引數

適用場景

適用get請求和post請求

例項

請求例子:http://127.0.0.1:8888/study/param/add_servlet?name=小紅&age=11 在post的body中加入phone

@RequestMapping(path = "/add_servlet")
public User add_servlet(HttpServletRequest request)
{
    User user = new User();
    user.setName(request.getParameter("name"));
    user.setAge(Integer.parseInt(request.getParameter("age")));
    user.setPhone(request.getParameter("phone"));
    return user;
}

在這裡插入圖片描述

3、通過建立一個實體物件來獲取引數

適用場景

適用get請求和post請求

例項

請求例子:http://127.0.0.1:8888/study/param/add_entity?name=小紅&age=11 在post的body中加入phone

    @RequestMapping(path = "/add_entity")
    public User add_entity(User user)
    {
        System.out.println(user.toString());
        return user;
    }

4、通過 PathVariable 從請求連線中獲取引數

適用場景

適用get請求

例項

請求例子:http://127.0.0.1:8888/study/param/add_path_variable/小紅/11

@RequestMapping(path = "/add_path_variable/{name}/{age}",method = RequestMethod.GET)
public User add_path_variable(@PathVariable String name,@PathVariable String age)
{
    User user = new User();
    user.setName(name);
    user.setAge(Integer.parseInt(age));
    return user;
}

在這裡插入圖片描述

5、通過 ModelAttribute 獲取傳進的引數

適用場景

適用post請求

例項

請求例子:

@RequestMapping(path = "/add_model_attribute",method = RequestMethod.POST)
public User add_model_attribute(@ModelAttribute("user") User user)
{
    System.out.println(user.toString());
    return user;
}

在這裡插入圖片描述


6、用註解@RequestParam繫結請求引數到方法入參

@RequestParam註解:將請求引數區域的資料對映到控制層方法的引數上
name:引數 名稱
required:是否必須
defaultValue:預設值

適用場景

適用get請求和post請求引數是key-value形式時的資料

例項

請求例子:http://127.0.0.1:8888/study/param/add_request_param?as_name=小紅&as_age=11

@RequestMapping(path = "/add_request_param")
public User add_request_param(@RequestParam(name="as_name",required = true,defaultValue = "預設名稱") String name,@RequestParam(name="as_age",required = true) String age)
{
    User user = new User();
    user.setName(name);
    user.setAge(Integer.parseInt(age));
    return user;
}

在這裡插入圖片描述
在這裡插入圖片描述

7、用註解@RequestBody繫結請求引數到方法入參

@RequestBody主要用來接收前端傳遞給後端的json字串中的資料的(請求體中的資料的)

適用場景

適用post請求

例項

請求例子:http://127.0.0.1:8888/study/param/add_request_body

@RequestMapping(path = "/add_request_body",method = RequestMethod.POST)
public User add_request_body(@RequestBody User user)
{
    System.out.println(user.toString());
    return user;
}

在這裡插入圖片描述
在這裡插入圖片描述



專案git地址

spring-boot2-http

相關文章