Java <;mvc:注释驱动/>;并绑定到集合
自从包含Java <;mvc:注释驱动/>;并绑定到集合,java,spring-mvc,Java,Spring Mvc,自从包含以来,我在将multi-select列表框的选择绑定到命令bean上相应的列表属性时遇到了一个问题。在引入之前,它工作正常 我有一个自定义集合编辑器: @InitBinder public void initBinder(WebDataBinder binder) { binder.registerCustomEditor(List.class, new CustomCollectionEditor(List.class) { protected Object conv
以来,我在将multi-select列表框的选择绑定到命令bean上相应的列表属性时遇到了一个问题。在引入
之前,它工作正常
我有一个自定义集合编辑器:
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(List.class, new CustomCollectionEditor(List.class) {
protected Object convertElement(Object element) {
String fieldName = (String)element;
for (Field field : fields) {
if (field.getFieldName().equals(fieldName))
return field;
}
return element;
}
});
}
这将导致表单控制器接收表示列表选择的列表。然而,由于使用了
,我现在得到的是一个列表
有人能帮我们弄清楚这种行为吗 这可能不太接近,但
如果您创建自己的AnnotationMethodHandlerAdapter
以在其上设置自定义webBindingInitializer
,则需要在AnnotationMethodHandlerAdapter
之后设置
,否则由
创建的将被使用,并且您的自定义活页夹将不被使用
如果它不是最后一个,请尝试移动它
除此之外,我只能建议在活页夹内设置一个断点,以查看是否调用它。这可能不太接近,但
如果您创建自己的AnnotationMethodHandlerAdapter
以在其上设置自定义webBindingInitializer
,则需要在AnnotationMethodHandlerAdapter
之后设置
,否则由
创建的将被使用,并且您的自定义活页夹将不被使用
如果它不是最后一个,请尝试移动它
除此之外,我只能建议在活页夹内设置一个断点,以查看是否调用它。谢谢!那真是太棒了!我把“AnnotationMethodHandlerAdapter”放在了“最上面的开始”的下面,把它们调换了,现在一切都很好!我很高兴它能工作:)正常情况下,订单不会在spring配置中导入,所以当它被导入时,它会对您有点影响。谢谢!那真是太棒了!我把“AnnotationMethodHandlerAdapter”放在了“最上面的开始”的下面,把它们调换了,现在一切都很好!我很高兴它能工作:)通常情况下,订单不会在spring配置中导入,所以当它被导入时,它会对您有点影响。