Spring - проверка переменной пути на ноль в контроллере - PullRequest
2 голосов
/ 07 апреля 2020

Я определяю переменную пути в контроллере. Получить запрос, используя:

@PathVariable("ticketId") final Long ticketId

Как проверить, что это значение не равно нулю?

Чтение https://www.baeldung.com/spring-validate-requestparam-pathvariable @NotBlank используется, но проверка на нулевое значение не упоминается.

Использование:

if ticketId == Null {
//return message indicating to user that null has been passed to path
}

Кажется плохой практикой, и вместо этого следует использовать try/catch?

1 Ответ

2 голосов
/ 07 апреля 2020

Вы можете использовать аннотацию @NotNull, которая подтверждает, что переданный параметр не является null. Однако он работает только для типов объектов, таких как Long. Если вы используете примитивный тип данных long, аннотация не может быть использована.

@PathVariable("ticketId") @NotNull final Long ticketId

Я скорее рекомендую использовать long, который по определению не может быть null.

Кроме того, вы можете бросить ResponseStatusException, если есть еще расширенный лог c проверки входящих параметров. Преимущество этого подхода заключается в том, что статус HTTP распространяется на окончательный ответ. Следующий пример приводит к 400 Bad Request:

if (ticketId == null) {
    throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "ticketId cannot be null");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...