spring正在将@queryparam boolean的字符串值转换为false

gc0ot86w  于 2021-07-16  发布在  Java
关注(0)|答案(1)|浏览(348)

我在requestmapping中将此作为queryparam:@queryparam(“isbenchmark”)boolean isbenchmark
现在,如果我传递任何字符串值也默认为false。如果不是真/假,我如何避免这个错误并抛出错误呢。有什么注解可以用来抛出这样的验证吗

l0oc07j2

l0oc07j21#

这是一个众所周知的问题。
使用 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
  }
}

相关问题