假设我想将 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
可以将国家/地区的 ID 转换为相应Country
实例的 a,例如
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
}
国家的 ID 在 HTTP(数组参数)中发送。有没有简单的方法来绑定Collection<Country>
,例如通过定义另一个PropertyEditor
?