Псевдоним имени в отображении параметров запроса на объект в Spring - PullRequest
0 голосов
/ 10 июля 2020

У меня есть класс

class Request {
    
    private String ftr;
    // more properties
}

И метод в классе контроллера

@GetMapping
public String list(@Valid Request request) {
    //...
}

Когда я отправляю запрос методу, URL-адрес https://example.com?ftr=sms

Возможно ли иметь псевдоним для параметра запроса, как в классе

class Request {
    
    @QueryParameter(name="ftr")
    private String filter;
    // ...
}

И сопоставить тот же URL-адрес запроса с этим классом?

1 Ответ

0 голосов
/ 10 июля 2020

Вы можете просто аннотировать свой параметр запроса с помощью @RequestParam(name = "ftr"), как показано ниже:

@GetMapping
public String list(@RequestParam(name = "ftr") @Valid String filter, ...) {
    //...
}

, но вы не можете сделать это для передачи объекта, как вы это сделали, поэтому вам нужно передать каждое поле как параметр, или вы можете использовать карту для инкапсуляции всех ваших параметров следующим образом:

@GetMapping
public String list(@RequestParam Map<String, String> params) {
    //...
}

, и это список всех аннотаций запроса, которые вы можете использовать с вашими методами:

  • RequestParam: используется для получения параметров
  • PathVariable: используется для параметров пути
  • RequestHeader: используется для параметров заголовков
  • RequestBody: используется для post / put / patch / ... тело
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...