Наличие параметра запроса должно оценивать как истинное - PullRequest
0 голосов
/ 21 ноября 2018

Скажем, у меня есть конечная точка, которая принимает запросы следующим образом:

GET https://my.website.com/products?expired

ИЛИ

GET https://my.website.com/products

Метод, который я ожидаюна работу:

@GetMapping
public List<Product> products(@RequestParam(value = "expired", required=false) boolean expired) {
   //Implementation details
}

Это, однако, вернет неверный запрос 400 ответ.

Я знаю, я бы заставил это работать, отправив expired requestParam как expired=true, но я бы хотел, чтобы это работало подобно булевым атрибутам HTML , где простое присутствие параметра запроса представляет true, а его отсутствие представляет false

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Интересно, придется ли вам реализовывать два метода, один с параметром, а другой без параметра, второй с ним обязательный (и, вероятно, Boolean не примитивный, как предполагает другой ответ).

(Тогда просто вызовите общий метод из обоих.)

0 голосов
/ 22 ноября 2018

Используйте Boolean вместо boolean - проблема в том, что вы пытаетесь распаковать null значение в примитив boolean, что вызывает NullpointerException и дальнейший неправильный запрос 400 ответ

public List<Product> products(@RequestParam(value = "expired", required=false) Boolean expired)

Здесь вы можете прочитать еще кое-что о распаковке логического

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...