后端接收Request請求參數的幾種方式


原文地址:
https://blog.csdn.net/ShiuHB/article/details/109674343

1.直接在controller方法的形參中接收參數

@RequestMapping("/addUser1")
public String addUser1(String username,String password) {
    System.out.println("username is:"+username);
    System.out.println("password is:"+password);
    return "demo/index";
}

這種方式前端傳參需要將值寫到url中,適用於get方式提交,不適用於post方式提交

2.@RequestParam注釋

與第一種方式類似,加在形參前,可以對前端的參數做映射
三個參數:

  • value:對應url中的參數名
  • required:是否是必須的,默認為false
  • defaultVaule:默認值

3.@PathVariable注釋

與第二種方式類似,加在形參前,可以直接到url中取值
不同點:mapping中要有對應的占位符(REST風格)

@RequestMapping("/addUser1/{name}/{pwd}")
public String addUser1(@PathVariable("name") String username, @PathVariable("pwd") String password) {
    System.out.println("username is:"+username);
    System.out.println("password is:"+password);
    return "demo/index";
}
  • value:對應url中的參數名
  • required:是否是必須的,默認為true
  • 沒有默認值

4.@RequestBody注釋

用於接收body中的json串

@RequestMapping(value = "/method03")
    public String method03(@RequestBody User user) {
        return JSON.toJSONString(user);
    }

注意實體類中的屬性名稱必須與JOSN串中的參數key名稱完全一致,不同命參數無法正確接收;
使用此種方式推薦使用Post請求攜帶body參數,get請求雖然也可以攜帶body參數並請求成功但並不推薦這樣操作

5.HttpServletRequest request接收參數

 @RequestMapping("/method06")
    public String method06(HttpServletRequest request) {
        User user = new User();
        user.setName(request.getParameter("name"));
        user.setAge(Integer.valueOf(request.getParameter("age")));
        user.setMoney(Double.parseDouble(request.getParameter("money")));
        return JSON.toJSONString(user);
    }

傳統的接收參數方式,可以接收url params 傳參,支持post from類型傳參,不支持JSON傳參
注意如果請求中未傳遞指定名稱的參數,取參時會報錯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM