Назначить конвертеры и значения по умолчанию на RestController Получить запрос с параметром DTO - PullRequest
0 голосов
/ 27 октября 2018

У меня есть конечная точка с множеством полей, поэтому я заключил их в один класс и использовал @ModelAttribute

Конечная точка:

@GetMapping
    public Page<VtmsTaskDto> list(@ModelAttribute TaskFilter taskFilter) {
     // blabla logic
}

TaskFilterDto.java

@Getter @Setter
public class TaskFilterDto {
private String sortDto;
private ZonedDateTime creationDate;
... bunch of other filters
}

Нет, я хочу сделать некоторые конвертеры и назначить значения по умолчанию для этих реквизита что-то вроде @JsonDeserialize(converter=CustomConverter.class) или @JsonProperty(default="someDefaultValue") Но поскольку в запросе используется закодированная форма URL-адреса кодирования по умолчанию, я не могу использовать какие-либо аннотации Jackson JSON.

Итак, я представляю TaskFilterDto.java класс может выглядеть примерно так:

 public class TaskFilterDto {

            @Converter(SortStringToSortDto.class)
            @Default(value="creationDate")
            private SortDto sort;

            @Converter(ZonedDateTimeToLocalDateTime.class)
            private LocalDateTime creationDateInUTC;
            ... bunch of other filters
   }

Есть ли какое-то правильное решение для этого, или я рассматриваю неправильный подход?

...