Il existe deux méthodes principales d'initialisation de la liaison de données, mais il existe un inconvénient dans la méthode oldschool, que je ne trouve pas. Cette manière d'annoter est grande:Externalisation de l'initialisation de @InitBinder dans WebBindingInitializer
@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(","));
}
mais je ne peux pas en avoir terminé avec ConfigurableWebBindingInitializer. Tout d'abord, l'instance de liant est créé dans AnnotationMethodHandlerAdapter et initialiseur est passé à l'instance de liant quelque part dans HandlerMethodInvoker donc je ne peux pas le mettre en place ... Je ne peux pas faire quelque chose comme ceci:
<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>
Comme exemple liant est passé dedans dans handlerAdapter. Comment puis-je configurer le classeur alors?