Spring MVC provides ConversionService to convert data to bean target type from from data.
In MVC, we can use custom ParamConverter to convert form data to the target type.
Parameter conversion
As an example, add a dueDate to Task entity. We need to convert the form field value(it is a String) to LocalDate type.
Create a custom ParamConverterProvider for LocalDate.
@ProviderpublicclassCustomConverterProviderimplementsParamConverterProvider{finalDateTimeFormatter DATE_FORMAT =DateTimeFormatter.ISO_DATE;@Overridepublic<T>ParamConverter<T>getConverter(Class<T>rawType,TypegenericType,Annotation[]annotations){if(rawType.getName().equals(LocalDate.class.getName())){returnnewParamConverter<T>(){@OverridepublicTfromString(Stringvalue){return value !=null?(T)LocalDate.parse(value, DATE_FORMAT):null;}@OverridepublicStringtoString(Tvalue){return value !=null?((LocalDate) value).format(DATE_FORMAT):"";}};}....}
Add a new field dueDate to TaskForm, which type is LocalDate.