我在我的应用程序中使用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>
答案 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"/>
希望这会有所帮助