Spring boot 有没有更好的方法来构造一个具有多个可能不需要的参数的控制器?

Spring boot 有没有更好的方法来构造一个具有多个可能不需要的参数的控制器?,spring-boot,controller,http-request-parameters,Spring Boot,Controller,Http Request Parameters,我正在制作一个简单的spring boot应用程序,我必须得到一个对象列表,并根据不需要的参数进行过滤。因此,用户基本上可以发送参数,但不必发送。我找到的最佳解决方案是使用@RequestParam注释,但它似乎不起作用。如果我把这两个参数都设置好,效果会很好,但是如果我只设置了一个或没有设置,我会得到一个错误。我是否必须为每种情况重载方法,或者是否有更平滑的方法来处理这个问题(如果可能的话,仍然使用get请求) 我的控制器: @RequestMapping( v

我正在制作一个简单的spring boot应用程序,我必须得到一个对象列表,并根据不需要的参数进行过滤。因此,用户基本上可以发送参数,但不必发送。我找到的最佳解决方案是使用@RequestParam注释,但它似乎不起作用。如果我把这两个参数都设置好,效果会很好,但是如果我只设置了一个或没有设置,我会得到一个错误。我是否必须为每种情况重载方法,或者是否有更平滑的方法来处理这个问题(如果可能的话,仍然使用get请求)

我的控制器:

@RequestMapping(
                value = "/fruits",
                params = {"apple", "orange"},
                method = GET)
public ResponseEntity<List<Fruit>> getFruits(
@RequestParam(value = "apple", required = false, defaultValue = "") 
List<Apple> apple,
@RequestParam(value ="orange", required = false, defaultValue = "") 
List<Orange> orange) {

List<Fruit> fruit = projectService.getFruits(apple, orange);
  return ResponseEntity.ok().body(fruit);
}
删除此行:

 params ={"apple","orange"} 
它会起作用的。
因为不需要调用两次,所以使用@RequestParam注释就足够了

删除这行params={“apple”,“orange”},它就会工作。@JonathanJohx就是它!天哪,我在想这个问题时遇到了很多麻烦。谢谢。
 params ={"apple","orange"}