Spring Webflow活页夹未绑定收集对象

时间:2018-12-10 21:52:43

标签: spring spring-webflow spring-webflow-2

我在我的应用程序中使用spring webflow v2.4.8,并尝试使用<binder></binder>绑定模型属性。但是我的集合对象(list1,list2和ArrayList都没有绑定)。如果我完全删除了<binder></binder>,则所有属性都将正确绑定,但是在我的情况下,这不是一个选择。

我需要在这里使用一些自定义转换器吗?任何帮助表示赞赏

 <view-state id="myId" model="myModel" view="myView" >
        <binder>
            <binding property="list1"/>
            <binding property="list2"/>
            <binding property="string1"/>
            <binding property="string2"/>
            .
            .
            .
        </binder>
        .
        .
        .
    </view-state>

1 个答案:

答案 0 :(得分:0)

已经有一段时间了,但是在我的项目中,我有一个自定义的ConversionService,所以也许您可以尝试使用这样的产品:

[编辑]

这里是使用服务(从数据库获取对象)的转换器的示例

@Named
public class StringToMyType extends StringToObject {

    @Inject
    private MyTypeService service;

    public StringToMyType(MyType myObject) {
        super(myObject);
    }

    @Override
    protected Object toObject(String id, Class<?> targetClass) throws Exception {
        if (id != null && id.length != 0) {
            return service.findById(new Long(id));
        } else return null;
    }

    @Override
    protected String toString(Object myObject) throws Exception {
        return Objects.toString(((MyType) myObject).getId());
    }
}

并在此处添加

public class CustomDefaultConversionService extends DefaultConversionService {

    @Override
    protected void addDefaultConverters() {
        super.addDefaultConverters();
        addConverter(new MyTypeConverter()
        addConverter(new ObjectToCollection(this));
    }
}

然后需要通过以下方式注册(xml):

<webflow:flow-builder-services id="flowBuilderServices" view-factory-creator="mvcViewFactoryCreator" conversion-service="conversionService"/>

<bean id="conversionService" class="path.to.converter.CustomDefaultConversionService"/> 

希望这会有所帮助