Java Spring表单一对多绑定对象
我有个问题。 我使用Spring Mongo数据、Web、mvc ecc。。。 我想将一个复杂对象与其依赖项绑定,但我的解决方案不起作用 代码如下: 模型Java Spring表单一对多绑定对象,java,spring,jsp,spring-mvc,spring-form,Java,Spring,Jsp,Spring Mvc,Spring Form,我有个问题。 我使用Spring Mongo数据、Web、mvc ecc。。。 我想将一个复杂对象与其依赖项绑定,但我的解决方案不起作用 代码如下: 模型 public class Foo { @Id private String id; private String nome; private String descrizione; private Date dataCreazione; private Date dataUltimaModific
public class Foo {
@Id
private String id;
private String nome;
private String descrizione;
private Date dataCreazione;
private Date dataUltimaModifica;
@DBRef
private Dependency dependency; //getters and setters
}
public class Dependency {
@Id
private String id;
@Indexed(unique = true)
private String nome;
private String descrizione;
private Date dataCreazione;
private Date dataUltimaModifica;
//GETTERS AND SETTERS
}
控制器
@RequestMapping(value = Constants.ADD, method = RequestMethod.GET)
public String add(Model model) {
Foo foo = new Foo();
model.addAttribute("fooForm", foo);
model.addAttribute("depList",depService.getList());
return "foo/add";
}
@RequestMapping(value = Constants.ADD, method = RequestMethod.POST)
public String addPost(@ModelAttribute("fooForm") Foo foo, BindingResult result, Model model) {
//Check if foo is not null
}
看法
提前谢谢。我找到了解决方案!这很简单 我们需要一个转换器对象,因为绑定的表单返回依赖项ID,而不是整个对象 这就是解决方案: 转换器
public class DependencyConverter implements Converter {
@Autowired
private CategoriaRepository repository;
@Override
public Categoria convert(String id) {
return repository.findById(id);
}
}
现在,我们在application-context.xml中注册转换器
<mvc:annotation-driven conversion-service="conversionService"/>
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="myPackage.DependencyConverter" />
</set>
</property>
</bean>
就这些
我希望这将有助于未来
再见…依赖关系是一个对象。这个对象的类在哪里(请在帖子中更新)。非常感谢您的快速回复。我已经用dependency对象更新了我的帖子depService.getList()返回什么?您是否看到依赖项选择中填充了选项?depService.getList()返回一个列表。。我尝试过使用另一个函数depService.getMap(),该函数返回HashMap(key,value…,其中key是id,Dependency是整个对象,但不起作用>
public class DependencyConverter implements Converter {
@Autowired
private CategoriaRepository repository;
@Override
public Categoria convert(String id) {
return repository.findById(id);
}
}
<mvc:annotation-driven conversion-service="conversionService"/>
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="myPackage.DependencyConverter" />
</set>
</property>
</bean>