Как связать @RequestParam с подобными объектами в Spring? - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть простой объект POJO с классом:

public class Place
{
    @NotNull
    private String country;
    @NotNull
    private String city;
}

Как связать такие объекты с RequestParam как здесь:

 public ResponseEntity find(@RequestParam String date, Place departure, Place arrival) 

Использовать api:

/ найти? Дата = 2019-02-10T16: 00: 00 & страна = Россия и город = Самара и страна = Россия и город = Москва

получить ответ с использованием

System.out.println(departure);
System.out.println(arrival);

Место{страна = 'Россия, Россия', город = 'Самара, Москва'}

Место {страна = 'Россия, Россия', город = 'Самара, Москва'}

Могу ли я получить ответ следующим образом:

Место {страна = 'Россия', город = 'Самара'}

Место {страна = 'Россия', город = 'Москва'}

1 Ответ

0 голосов
/ 09 февраля 2019

Проблема в том, что Spring не может дифференцировать ваши параметры с одинаковыми именами и складывать их.Для такого небольшого бизнес-объекта в качестве параметра я бы явно создал другое имя в конкретном объекте параметра.

public void find(@RequestParam String date, Travel travel)

С таким объектом:

public class TravelDto {

  @NotNull
  private String fromCountry;
  @NotNull
  private String fromCity;
  @NotNull
  private String toCountry;
  @NotNull
  private String toCity;
....
}

В вашей ситуации это будет понятно с точки зрения HTTP:

/find? date = 2019-02-10T16: 00: 00 & fromCountry = Россия & fromCity = Самара & toCountry = Россия & toCity = Москва

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