正如您已经指出的,技巧是注册一个自定义转换器,该转换器将ID从下拉列表转换为Custom实例。
您可以通过以下方式编写自定义转换器:
public class IdToCustomerConverter implements Converter<String, Customer>{
@Autowired CustomerRepository customerRepository;
public Customer convert(String id) {
return this.customerRepository.findOne(Long.valueOf(id));
}
}
现在向Spring MVC注册此转换器:
<mvc:annotation-driven conversion-service="conversionService"/>
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServicefactorybean">
<property name="converters">
<list>
<bean class="IdToCustomerConverter"/>
</list>
</property>
</bean>