0 java rest web-services spring-boot
我是使用 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
}
Run Code Online (Sandbox Code Playgroud)
另外,我不明白如何处理参数,例如,如果它是一个整数,则只有一列,但如果用户输入字符串,则有两列。如果用户没有指定参数名称,我必须处理。
您可以使用注释定义三个参数@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
}
}
Run Code Online (Sandbox Code Playgroud)
关于用户选择哪个参数:您可以创建一个下拉菜单或简单的单选选择,其中用户自己选择搜索条件(并且每个条件都由请求参数映射)。例如:
小智 5
您可以使用@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);
}
Run Code Online (Sandbox Code Playgroud)