У меня есть следующий запрос к моему REST API :
GET {hostname}:{port}/entity?code=123&recordId=422&prop1=123&prop2=213&propN=512
Я хочу преобразовать параметры запроса в модель:
public class EntityFilter {
private String code;
private String recordId;
private MultiValueMap<String, String> props; //all props goes here eg prop1=123, prop2=213
//getters and setters are ommited
}
И получить эту модельв качестве входного параметра для контроллера:
@GetMapping(value = "/entities", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity getEntities(EntityFilter filter) {
//code
}
При использовании подобной установки у меня будут " код " и " recordId ", заполненные правильными значениями, ноКарта " props " будет пустой.
Как я могу сказать Spring, чтобы он заполнял объект модели в соответствии с каким-то пользовательским конвертером или чем-то еще?
Я пытался использовать:
@InitBinder
public void initBinderAll(WebDataBinder binder) {
binder.registerCustomEditor(EntityFilter.class, new FilterProperyEditor());
}
Но фактические методы FilterPropertyEditor вроде setAsText (String text) не выполняются вообще.