В моей applicationContext.xml я объявляю следующие 2 пользовательских преобразователь,SpringMVC Пользовательский конвертер не найден, но объявлен в XML
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="util.BooleanToYesNoDataTypeConverter"/>
<bean class="util.YesNoDataTypeToBooleanConverter"/>
</set>
</property>
</bean>
преобразователи заботиться о преобразовании между булевым и пользовательским типом под названием «YesNoDataType ',
public class BooleanToYesNoDataTypeConverter implements Converter<Boolean,YesNoDataType> {
@Override
public YesNoDataType convert(Boolean source) {
if (Boolean.TRUE.equals(source))
return YesNoDataType.Y_YES;
else
return YesNoDataType.N_NO;
}
}
public class YesNoDataTypeToBooleanConverter implements Converter<YesNoDataType,Boolean> {
@Override
public Boolean convert(YesNoDataType source) {
if (YesNoDataType.Y_YES.equals(source))
return Boolean.TRUE;
else
return Boolean.FALSE;
}
}
В теории преобразователи теперь зарегистрированы и могут быть использованы, верно? Я следую примеру в этом сообщении: Spring MVC type conversion : PropertyEditor or Converter?
Однако в моем контроллере, когда я перехожу к следующему переопределению initBinder, я проверяю текущие активные преобразователи. Угадайте, что, мои 2 конвертера недоступны. Почему это? Взгляните ниже.
@Override
@InitBinder
public void initBinder(WebDataBinder binder) {
// Check current ConversionService
ConversionService conversionService = binder.getConversionService();
// The below FAILS with a "Converter not found" error
Boolean b = conversionService.convert(YesNoDataType.Y_YES, Boolean.class);
// These 2 return FALSE, meaning we CAN'T convert YesNoDataType/Boolean
System.out.println("Can convert YesNo -> Boolean? " + conversionService.canConvert(Boolean.class, YesNoDataType.class));
System.out.println("Can convert Boolean -> YesNo? " + conversionService.canConvert(YesNoDataType.class, Boolean.class));
}
Кстати, позвольте мне задать более широкий вопрос о Spring/SpringMVC. Весенние люди ликвидировали/закрыли форум, который существовал до 2014 года, http://forum.spring.io/. Единственный способ получить поддержку SpringMVC - это опубликовать здесь, в StackOverflow, но любые темы SpringMVC здесь получают 5-6 просмотров и ответов. Несколько лет назад сообщество было активным. Что случилось с SpringMVC, это уже не поддерживается? Где сообщество для этого? Просто интересуюсь.
Вы используете maven? если вы попробовали очистить свой проект и построить еще раз? иногда он становится глючным, стоит сделать снимок: P – Boldbayar
также проверьте, есть ли у ваших преобразователей @Component – Boldbayar
Да, я добавил @Component к конвертерам. Еще один результат. –