一、RequestParamRequired概述
RequestParamRequired是Spring在處理RESTful介面時用來獲取參數的註解,它可以將參數從request中獲取出來並轉換為指定類型,同時可以指定是否必須傳入參數。若不傳入參數,則會拋出異常。
以下是示例代碼:
@GetMapping("/user/{id}") public UserDto getUser(@PathVariable("id") Long id, @RequestParam(required = true) String name) { return userService.getUser(id, name); }
二、RequestParamRequired詳解
1、required屬性
required屬性是@RequestParam的一個屬性,默認值為true,意味著必須傳入參數。
若設置為false,則允許參數不存在,如下所示:
@GetMapping("/user") public List getUsers(@RequestParam(required = false) String name) { return userService.getUsers(name); }
可以不傳入name參數。
2、defaultValue屬性
defaultValue屬性是@RequestParam的一個屬性,用於指定參數默認值。
若未傳入參數,則會使用defaultValue屬性指定的默認值。
@GetMapping("/user") public List getUsers(@RequestParam(required = false, defaultValue = "all") String name) { return userService.getUsers(name); }
若不傳入name參數,則name參數默認值為”all”。
3、name屬性
name屬性是@RequestParam的一個屬性,用於指定傳入參數的名稱。
@GetMapping("/user") public List getUsers(@RequestParam(name = "user_name") String name) { return userService.getUsers(name); }
若不指定name屬性,則使用參數名作為參數名稱。
4、value屬性
value屬性是@RequestParam的一個屬性,與name屬性功能相同,用於指定傳入參數的名稱。
@GetMapping("/user") public List getUsers(@RequestParam(value = "user_name") String name) { return userService.getUsers(name); }
若不指定value屬性,則使用參數名作為參數名稱。
三、RequestParamRequired使用示例
@GetMapping("/user/{id}") public UserDto getUser(@PathVariable("id") Long id, @RequestParam(required = true) String name) { return userService.getUser(id, name); }
以上介面中,必須傳入參數name,否則會拋出異常。
以下介面中,默認會傳入參數name,若不傳入,則默認值為”default_name”。
@GetMapping("/user") public List getUsers(@RequestParam(required = false, defaultValue = "default_name") String name) { return userService.getUsers(name); }
以下介面中,必須傳入參數user_name,否則會拋出異常。
@GetMapping("/user") public List getUsers(@RequestParam(name = "user_name", required = true) String name) { return userService.getUsers(name); }
四、結語
通過以上的示例代碼,我們可以更好地理解RequestParamRequired的用法。在使用RESTful介面時,RequestParamRequired是極為重要的,它可以幫我們處理參數並拋出異常,提高代碼的健壯性。
原創文章,作者:ACAF,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/136445.html