Spring 正在将 @queryparam 布尔值的字符串值转换为 false

Spring is converting String values to false for @queryparam Boolean

我在请求映射中将其作为查询参数: @QueryParam("isBenchmark") boolean isBenchmark

现在,如果我传递任何字符串值,它也默认为 false。如果它不是 true/false,我该如何避免这种情况并抛出错误。 有没有我可以抛出这样的验证的注释

这是一个已知问题。

它使用 new Boolean(isBenchmark) 转换为布尔值,因此当 isBenchmark 为真时它转换为真,在所有其他情况下它转换为假。

很遗憾,您必须自己处理

 public void YourMethod(@QueryParam("isBenchmark") String isBenchmark) {
 boolean val
 if (isBenchmark != null && isBenchmark.equals("true")){
   val = true;
 } else if (isBenchmark != null && isBenchmark.equals("false")) {
   val = false;
 } else {
   Throw Exception or return a bad request
  }
}