1.設置指定請求參數名稱
在前面的示例中,變量名稱和參數名稱相同。
有時候,我們希望它們有所不同。或者,如果我們不使用Spring Boot,則可能需要進行特殊的編譯時配置,否則參數名稱實際上將不在字節碼中。
但是很好的是,我們可以使用name屬性配置 @RequestParam名稱:
1
2
3
4
5
|
@PostMapping( "/api/foos") @ResponseBody public String addFoo( @RequestParam (name = "id" ) String fooId, @RequestParam String name) { return "ID: " + fooId + " Name: " + name; } |
我們還可以執行 @RequestParam(value =“ id”)或僅執行@RequestParam(“ id”)。
2.設置可選的請求參數
默認情況下,需要使用@RequestParam註釋的方法參數 。
這意味着,如果請求中不存在該參數,則會收到錯誤消息:
1
2
3
4
|
GET /api/foos HTTP /1.1 ----- 400 Bad Request Required String parameter 'id' is not present |
但是,我們可以將@RequestParam配置爲可選,並具有必填 屬性:
1
2
3
4
5
|
@GetMapping( "/api/foos") @ResponseBody public String getFoos( @RequestParam (required = false) String id) { return "ID: " + id; } |
在這種情況下,兩者:
1
2
3
|
http://localhost :8080 /api/foos ? id=abc ---- ID: abc |
和
1
2
3
|
http://localhost :8080/api/foos ---- ID: null |
將正確調用該方法。
如果未指定參數,則方法參數綁定爲null。