Spring Converter

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));
        }
    }
}