Как проверить, является ли переменная Integer типа @RequestParam в Spring «пустой»? - PullRequest
0 голосов
/ 24 апреля 2019

Если у меня есть код, в котором:

@RequestParam(value = "amount", required = false) Integer amount

является одним из моих параметров, что я могу сделать, чтобы пользователь не мог присвоить этому параметру «пустое» значение?

Например: предположим, они запросили в Postman URL-адрес http://localhost:8080/myproject?amount= точно так же, без присвоения значения этому параметру.Как я могу проверить это в своем коде и не дать им присвоить пустое значение объекту Integer?Я имею в виду, обязательный действительно должен быть определен как false - так как нет необходимости информировать этот параметр - но, если он информирован, он не может получить пустойзначение.Если бы этот параметр был объектом типа String, я знаю, что мог бы просто написать простой

if (amount.isEmpty()) {
    ...
}

, но поскольку он имеет тип Integer, я не знаю, как его проверить, поскольку переменная не равна нулю(поскольку он был указан в URL), хотя никакие значения не были назначены.

Короче говоря: я хочу, чтобы они были разрешены при вызове URL:

http://localhost:8080/myproject

http://localhost:8080/myproject?amount=2222

Но не это:

http://localhost:8080/myproject?amount=

1 Ответ

0 голосов
/ 25 апреля 2019

Если сумма не передана в URL http://localhost:8080/myproject?amount=, значение по умолчанию amount будет нулевым, поскольку целое число может содержать нулевое значение

 @RequestMapping("/create3")
    public String create3(@RequestParam Integer amount){
        if(amount == null){
         //return bad request
        }
        System.out.println("amount: "+amount);
        return "Done";
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...