数据绑定初始化有两种主要的方法,但是老派的有一个缺点,我想不通。这种注释方式很棒:
@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>
因为 binder 实例是在 handlerAdapter 中传入的。那我该如何设置活页夹呢?