Предположим, я хочу привязать параметры HTTP к экземпляру
class Continent {
Integer id
String name
Country country
}
, где класс Country
выглядит примерно так:
class Country {
Integer id
String name
Currency currency
// other properties
}
Если я хочу связать Continent.country
к экземпляру Country
, который уже существует и может быть получен с помощью:
interface CountryService {
Country get(Integer countryId)
}
Простой способ сделать это - определить PropertyEditor
, который может преобразовать идентификатор страны в соответствующий ответ Country
например,
public class ProductTypeEditor extends PropertyEditorSupport {
CountryService countryService // set this via dependency injection
void setAsText(String paramValue) {
if (paramValue)
value = countryService.get(paramValue.toInteger())
}
public String getAsText() {
value?.id.toString()
}
}
Если вместо этого я хочу привязать данные к экземпляру
class Continent {
Integer id
String name
Collection<Country> countries
}
, а идентификаторы стран отправляются в HTTP (параметр массива).Есть ли простой способ связать Collection<Country>
, например, определив другой PropertyEditor
?