Spring @RequestParam注解的使用[轉]


 

1、@RequestParam作用:

將請求參數綁定到你控制器的方法參數上

2、@RequestParam三個屬性:

@RequestParam(value=”參數名”, required=true/false, defaultValue=””):

(1)value:請求參數名(必須配置)單一參數時,可簡化如下:

/**
* @Description: url參數中的name必須要和@RequestParam("name")一致
* @Author: vdi100
*/
@GetMapping("edit1")
public String edit1(@RequestParam("userId") Integer userId, Model model) {
System.out.println("*******************" + userId);
model.addAttribute("userId" , userId);
return "/admin/ronghe/rongheMobileList/edit";
}
/**
* @Description: url參數中的name必須要和@RequestParam("name")一致
* 參數名字不一樣
* @Author: vdi100
*/
@GetMapping("edit2")
public String edit2(@RequestParam("userId") Integer id, Model model) {
System.out.println("*******************" + id);
model.addAttribute("id" , id);
return "/admin/ronghe/rongheMobileList/edit";
}
(2)required:是否必需,默認為 true,即 請求中必須包含該參數,如果沒有包含,將會拋出異常(可選配置)

/**
* @Description: required = true時必須有參數id,否則會報錯
* required = false時參數id可不傳,默認為null,所以此時參數類型不能為int
* @Author: vdi100
*/
@GetMapping("edit3")
public String edit3(@RequestParam(value = "id", required = true) Integer id, Model model) {
System.out.println("*******************" + id);
model.addAttribute("id" , id);
return "/admin/ronghe/rongheMobileList/edit";
}
(3)defaultValue:默認值,如果設置了該值,required 將自動設為 false,無論你是否配置了required,配置了什么值,都是 false;如果沒有傳該參數,就使用默認值(可選配置)

/**
* @Description: 設置defaultValue值時,required無論設置是何值,都默認為false
* @Author: vdi100
*/
@GetMapping("edit4")
public String edit4(@RequestParam(value = "id", required = false, defaultValue = "10") Integer id, Model model) {
System.out.println("*******************" + id);
model.addAttribute("id" , id);
return "/admin/ronghe/rongheMobileList/edit";
}
3、@RequestParam接收前台傳遞過來的數組:

如下圖傳遞的參數是數組:

 

@RequestParam接收參數:

/**
* @Description: 接收的參數ids是數組
* @Author: vdi100
*/
@PostMapping("delete")
@ResponseBody
public RestResponse delete(@RequestParam(value = "ids[]", required = false) List<Long> ids) {
if (null == ids) {
return RestResponse.failure("ID不能為空" );
}
for (Long id : ids) {
rongheMobileListService.deleteById(id);
}
return RestResponse.success();
}
4、@RequestParam接收前台傳遞過來的Map<String, Object>:

如下圖前台ajax傳遞的參數data是一個Map<String, Object>:

 

@RequestParam接收參數:

/**
* @Description: 接收的參數data是Map<String, Object>
* @Author: vdi100
*/
@PostMapping("entry")
@ResponseBody
public RestResponse add(@RequestParam(value = "data[mobile]") String mobile,
@RequestParam(value = "data[pro]") String pro,
@RequestParam(value = "data[realTime]", required = false) String realTime,
@RequestParam(value = "data[sjbm]", required = false) String sjbm,
@RequestParam(value = "data[sjmc]", required = false) String sjmc,
@RequestParam(value = "data[mobBm]", required = false) String mobBm,
@RequestParam(value = "data[mobMc]", required = false) String mobMc,
@RequestParam(value = "data[orderId]", required = false) String orderId,
@RequestParam(value = "data[sn]") String sn,
@RequestParam(value = "data[bakMobile]", required = false) String bakMobile) {

return RestResponse.success();
}
 
原文鏈接:https://blog.csdn.net/Third_Week/article/details/90376578


免責聲明!

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



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