データバインディングの初期化には2つの主要な手段がありますが、私が把握することができない古い学校の欠点があります。この注釈方法は素晴らしいです:WebBindingInitializerへの@InitBinderの初期化の外部化
@InitBinder("order")
public void initBinder(WebDataBinder binder) {
// Problem is that I want to set allowed and restricted fields - can be done here
binder.setAllowedFields(allowedFields.split(","));
}
私はConfigurableWebBindingInitializerで行うことはできません。まず第一に、バインダーのインスタンスがAnnotationMethodHandlerAdapterに作成され、初期化子がそのように私はそれを設定することはできません...私はこのような何かを行うことはできませんHandlerMethodInvokerのどこかにバインダーインスタンスを渡されます。
<bean id="codesResolver" class="org.springframework.validation.DefaultMessageCodesResolver" />
<bean id="binder" class="org.springframework.web.portlet.bind.PortletRequestDataBinder" scope="prototype">
<property name="allowedFields" value="${allowedFields}" />
<aop:scoped-proxy />
</bean>
<bean id="webBindingInitializer" class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="messageCodesResolver" ref="codesResolver" />
</bean>
バインダーインスタンスので、 handlerAdapterでその中に渡されます。バインダーはどうすれば設定できますか?