Существует два документированных способа пометить параметр метода Spring как необязательный:
(1) Добавить required=false
к аннотации @RequiredParam
:
public String books(@RequestParam(name = "category", required = false) String category) {
ссылка
(2) Измените тип параметра на Optional<T>
:
public String books(@RequestParam(name = "category") Optional<String> category) {
ссылка
Но, похоже, также работает следующее:
(3) Поместите @Nullable
аннотация к параметру:
public String books(@Nullable @RequestParam(name = "category") String category) {
Я предпочитаю № 3, но я бы предпочел использовать его, если бы он был задокументирован.Я искал документацию, но все, что я могу найти, это то, что задокументировано для @Nullable:
Обычная аннотация Spring для объявления, что аннотированные элементы могут быть нулевыми при некоторых обстоятельствах.
Я не могу найти ни одного примера, показывающего @Nullable
, использованного с @RequestParam
.
Кто-нибудь знает, если и где это задокументировано?