Register custom converter:
When use Spring <mvc:annotation-driven/>
, Spring will automatically initialize some MVC usefull bean @See WebMvcConfigurerComposite
. It contains :
@Bean
public FormattingConversionService mvcConversionService() {
FormattingConversionService conversionService = new DefaultFormattingConversionService();
addFormatters(conversionService);
return conversionService;
}
And then, <mvc:annotation-driven conversion-service="mvcConversionService" />
and we can you it:
/**
* @author van.yzt
* @date 2017/08/29
*/
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new StringToAccessLevelEnum());
super.addFormatters(registry);
}
final class StringToAccessLevelEnum implements Converter<String, AccessLevelEnum> {
@Override
public AccessLevelEnum convert(String source) {
return AccessLevelEnum.fromValue(Integer.parseInt(source));
}
}
}