簡體   English   中英

Spring Boot 處理 get 請求中的多個參數

[英]Spring Boot handling multiple parameters in a get request

我是使用 Spring 引導框架的新手。 我想創建一個@GetMapping,其中基於用戶在參數 Property1 Name(String) 或 Protery2 Designation(String) 或 Property3 Salary(Integer) 中輸入的內容,該方法應該能夠獲取基於一個或多個的員工列表特性。 我可以創建單獨的方法,但我不想這樣做。 我想做這樣的事情:

@GetMapping("/employee")
public List<Employee> getEmployee(Params parameters)
{
    // Filter the list based on parameters provided and return the list
}

另外,我不明白如何處理參數,例如,如果它是一個整數,則只有一列,但如果用戶輸入字符串,則有兩列。 如果用戶沒有指定參數名稱,我必須處理。

您可以使用@RequestParam Map<String, String> params將所有參數綁定到一個變量

例如

@RequestMapping(value="/params", method = RequestMethod.GET)
public ResponseEntity getParams(@RequestParam Map<String, String> params ) {

   System.out.println(params.keySet());
   System.out.println(params.values());

   return new ResponseEntity<String>("ok", HttpStatus.OK);
}

您可以使用@RequestParam注解定義三個參數並檢查哪一個是非空的:

@GetMapping("/employee")
public List<Employee> getEmployee(@RequestParam(defaultValue = "empty") String name, @RequestParam(defaultValue = "empty") String designation, ....
{
    // check which one is not empty and perform logic
    if (!name.equals("empty")) {
      // do something 
  }
}

關於用戶選擇哪個參數:您可以制作下拉菜單或簡單單選,用戶自己選擇搜索條件(以及每個條件由請求參數映射)。 例如:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM