Spring преобразует строковые значения в false для логического значения @queryparam

#spring #spring-boot #spring-mvc #annotations

#spring #spring-boot #spring-mvc #примечания

Вопрос:

У меня есть это как параметр запроса в моем сопоставлении запросов: @QueryParam(«isBenchmark») boolean isBenchmark

Теперь, если я передаю какое-либо строковое значение, оно по умолчанию принимает значение false. Как я могу избежать этого и выдать ошибку, если она отличается от true / false. Есть ли какие-либо аннотации, с помощью которых я могу выполнять такие проверки

Ответ №1:

Это известная проблема.

Он преобразуется в boolean с использованием new Boolean(isBenchmark) So, когда isBenchmark значение true преобразуется в true, во всех остальных случаях оно преобразуется в false.

К сожалению, вы должны справиться с этим самостоятельно

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