一、擷取指定的參數(必填)
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 錯誤,如下圖
若前台傳入多個參數,而背景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 中。
以上幾種可以在實際運用中進行組合使用。