Ваш существующий экземпляр org.springframework.core.convert.converter.Converter
будет работать только с данными, представленными как данные, закодированные в форме. С @RequestBody
вы отправляете JSON данные, которые будут десериализованы с использованием библиотеки Джексона.
Затем можно создать экземпляр com.fasterxml.jackson.databind.util.StdConverter<IN, OUT>
public class StringToCountryTypeConverter extends StdConverter<String, CountryType> {
@Override
public CountryType convert(String value) {
//convert and return
}
}
и применить его к целевому свойству:
public class MyBody {
@NotNull
@JsonDeserialize(converter = StringToCountryTypeConverter.class)
private CountryEnum country;
}
Учитывая сходство 2 интерфейсов Я ожидаю, что вы можете создать один класс для обработки обоих сценариев ios:
public class StringToCountryTypeConverter extends StdConverter<String, CountryType>
implements org.springframework.core.convert.converter.Converter<String, CountryType> {
@Override
public CountryType convert(String value) {
//convert and return
}
}