Служба пользовательского преобразования не используется для привязки данныхJAVA

Программисты JAVA общаются здесь
Гость
Служба пользовательского преобразования не используется для привязки данных

Сообщение Гость »


Используя Spring 3.0.5, я настроил собственный конвертер и добавил его в

Код: Выделить всё

conversionService
, вот так: Это отлично работает в Spring-JDBC с

Код: Выделить всё

BeanPropertyRowMapper
(мне нужно добавить

Код: Выделить всё

conversionService
к нему

Код: Выделить всё

setConversionService()
).
Но для контроллеров это не работает.
Я пробовал добавить Но это не имеет значения.
Очевидно, контроллеры/биндеры используют отдельный экземпляр

Код: Выделить всё

conversionService
, как показано в этом коде:

Код: Выделить всё

@Controller
public class MyController
{

@Autowired
private ConversionService conversionService;

@InitBinder
protected void initBinder(WebDataBinder binder)
{
System.out.println("conversionService="+conversionService.getClass());
System.out.println("conversionService="+conversionService);
System.out.println("binder.getConversionService="+binder.getConversionService().getClass());
System.out.println("binder.getConversionService="+binder.getConversionService());
}
Автоматическое связывание объекта имеет тип

Код: Выделить всё

org.springframework.core.convert.support.GenericConversionService
, в то время как Binder.conversionService имеет тип

Код: Выделить всё

org.springframework.format.support.FormattingConversionService
.
Вторая строка вывода подтверждает, что первый компонент содержит мой собственный преобразователь, а второй — нет.
Вопрос: как добавить мой конвертер (StringToMYTypeConverter) для использования (всеми, а не только одним) контроллерами?
Я пытался реализовать свой конвертер как

Код: Выделить всё

ProperytEditor
, который работает, если я добавляю его в связующее в методе initBinder() (через

Код: Выделить всё

binder.registerCustomEditor(MYType.class, new org.example.impl.StringToMYTypeConverter());
). Is there a way to add it to all binders/controllers in one place? That would be an acceptable solution.


Источник: https://stackoverflow.com/questions/781 ... ta-binding

Вернуться в «JAVA»