我正在尝试将嵌套对象绑定到表单选择列表。这是一个简单的产品=>媒体集关系。
我读了一些博客文章等,建议使用自定义格式化程序类在选择列表值和类型之间进行转换。
但我很难弄清楚配置是如何工作的。到目前为止,我一直在使用java配置类。
我有两个问题:
-
格式化程序是正确的接口吗?我也读过关于Converter的文章,听起来我应该用它来代替。
-
如何使用java配置注册自定义格式化程序?
我的配置类看起来像:
@Configuration
@ComponentScan("com.mvc")
@EnableWebMvc
@EnableTransactionManagement
public class WebConfig extends WebMvcConfigurerAdapter {
....
@Bean
public ConversionService conversionService() {
DefaultFormattingConversionService bean = new DefaultFormattingConversionService();
bean.addFormatter(new ImageSetFormatter());
return bean;
}
...
}
哦,没关系,我想明白了,实际上很容易,但我会把问题留在这里,以防其他人在找。
在超级类中有一个方法来注册它:
要注册客户格式化程序,只需将上面的内容替换为:
public class WebConfig extends WebMvcConfigurerAdapter {
...
@Override
public void addFormatters(FormatterRegistry formatterRegistry) {
formatterRegistry.addFormatter(new ImageSetFormatter());
}
}