Converter

property manager의 단점

스프링 3.0 부터 추가

public class EventConverter {

	public static class StringToEventConverter implements Converter<String, Event> {
		
		@Override
		public Event convert(String source) {
			return newEvent(Integer.parseInt(source));
		}
	}
	
	public static class EventToStringConverter implements Converter<String, Event> {
		@Override
		public String convert(Event source) {
			return source.getId().toString();
		}
	}
}
@Configuration
public class WebConfig implements WebMvcConfigurer {
	
	@Override
	public void addFommatters(FormatterRegistry registry) {
		registry.addConverter(new EventConverter.StringToEventConverter());
	}
}

Formatter

public class EventFormatter implements Formatter<Event> {

	@Override
	public Event parse(String text, Locale locale) throws ParseException {
		return new Event(Integer.parseInt(text));
	}

	@Override
	public String print(Event object, Locale locale) {
		return object.getId().toString();
	}
}

사용 방법

@Configuration
public class WebConfig implements WebMvcConfigurer {
	
	@Override
	public void addFommatters(FormatterRegistry registry) {
		registry.addFormatter(new EventFormatter());
	}
}