Spring 启动处理获取请求中的多个参数
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
注释定义三个参数并检查哪个是非空的:
@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
}
}
关于用户选择哪个参数:您可以做一个下拉菜单或简单的单选选项,用户自己选择搜索条件(并且每个条件都由请求参数映射)。例如:
您可以使用@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);
}
我刚开始使用 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
注释定义三个参数并检查哪个是非空的:
@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
}
}
关于用户选择哪个参数:您可以做一个下拉菜单或简单的单选选项,用户自己选择搜索条件(并且每个条件都由请求参数映射)。例如:
您可以使用@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);
}