Webリクエストをモデルオブジェクトにバインドすることに関して、SpringのDataBinderとConversionServiceの使用と目的に混乱が生じています。これは、最近JSR-303検証を追加して使用しようとしたために発生しました。
これの前に私は使用しました:
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="mypackage.GlobalWebBindingInitializer" />
</property>
</bean>
複数のコントローラーで使用できるグローバルなDataBinderが必要だったので、これは良かったです。GlobalWebBindingInitialzerクラス内で、これらのいくつかを実装します。
binder.registerCustomEditor(MyClass.class, new PropertyEditorSupport(MyClass.class)
ただし、@ Validアノテーションを使用したかったので、を追加しました。これの副作用は、上記のAnnotationMethodHandlerAdapter Beanがすでにアノテーション駆動型の一部として定義されているため、グローバルデータバインダーが無視されることです。
だから今私はこのクラスを作成しました:
public class MyClassConverter implements Converter<String, MyClass>
私は混乱しています。使用したい場合、データバインダーではなく変換サービスを使用する必要がありますか?