天天看點

SpringMVC 架構中,@RequestParam 的簡單用法

一、擷取指定的參數(必填)

controller 中的寫法

@RequestMapping("/fetchItemDetail.do")
    @ResponseBody
    public String fetchItemDetail(@RequestParam String userName) {
        JSONObject json = new JSONObject();
        System.out.println("userName = [" + userName + "]");
        return json.toJSONString();
    }
           

在上述 controller 方法中用 @RequestParm String userName 指明目前方法接收的參數名稱,則在目前 url 請求中必須攜帶該參數,若前台請求中,未傳入目前指定的參數,背景傳回 400 錯誤,如下圖

SpringMVC 架構中,@RequestParam 的簡單用法

若前台傳入多個參數,而背景controller 隻設定了一個參數,當請求到達背景 controller 後,背景隻會接收目前設定的參數。

二,擷取指定的參數(非必填)

controller 中的寫法

@RequestMapping("/fetchItemDetail.do")
    @ResponseBody
    public String fetchItemDetail(@RequestParam(required = false) String userName) {
        JSONObject json = new JSONObject();
        System.out.println("userName = [" + userName + "]");
        return json.toJSONString();
    }
           

若目前參數非必填,則将  @RequestParm 中設定 require = false  即可。

三、擷取指定參數(設預設值)

controller 中的寫法

@RequestMapping("/fetchItemDetail.do")
    @ResponseBody
    public String fetchItemDetail(@RequestParam(defaultValue = "哈哈哈") String userName) {
        JSONObject json = new JSONObject();
        System.out.println("userName = [" + userName + "]");
        return json.toJSONString();
    }
           

不管目前參數是否為必填,如需要給目前設預設值,則在  @RequestParm 中設定 defaultValue = "需要的預設值" 即可,這樣,目前台沒有傳入該參數時,背景會預設給一個設定的預設值。

四、給指定參數取别名

因為某些原因,目前台 url 請求傳送上來的參數和我們背景設定的接收參數名稱不一樣時,可以用 @RequestParm(name = "前台傳入的名稱")  進行參數名稱轉換,SpringMVC 自動将值注入到 後面controller 中設定的接收參數中,如下面代碼

@RequestMapping("/fetchItemDetail.do")
    @ResponseBody
    public String fetchItemDetail(@RequestParam(name = "name") String userName) {
        JSONObject json = new JSONObject();
        System.out.println("userName = [" + userName + "]");
        return json.toJSONString();
    }
           

上述方法中參數的設定,前台 url 參數傳入的參數名稱:name  ,背景SpringMVC 會自動将 name中的值注入到背景設定的真實接收參數 userName 中。

以上幾種可以在實際運用中進行組合使用。