1. 程式人生 > >SpringMVC使用@RequestParam接收引數的問題

SpringMVC使用@RequestParam接收引數的問題

1.背景是在寫登陸介面的時候
程式碼如下:

@RestController
@Slf4j
public class LoginController {

    @RequestMapping("/login")
    public String login(@RequestParam(name = "userName") String userName,
                        @RequestParam(name = "password") String password) {
        log.info("userName:{},password:{}", userName, password);
        return "success->" + userName + ":" + password;
    }
}

在這裡我之前因為一直用的是一個User物件來接收使用者名稱與密碼的,這次使用上面的方式來接收,使用之前傳遞引數的方式就會出錯,於是我針對上面的介面測試了以下四種傳遞引數方式。

使用postman來驗證:
1.Content-Type : multipart/form-data時,傳送登陸請求時
在這裡插入圖片描述

2.Content-Type : application/x-www-form-urlencoded時,傳送登陸請求
在這裡插入圖片描述

3.Content-Type : application/x-www-form-urlencoded,但是使用raw方式裡面設定了
Text傳送請求,此時的引數需要用&符號連結,也可以登陸成功


在這裡插入圖片描述

4.Content-Type : application/json,傳送登陸請求時候報錯,引數繫結錯誤
在這裡插入圖片描述

列舉以上四種情況,主要是為了測試,在不是用物件接收userName和password引數時,在postman中使用userName=admin&password=admin方式傳遞引數,後臺也是可以登陸成功。