Vous pouvez facilement combiner plusieurs objets dans un attribut de modèle à l'aide d'un objet de support, comme ceci:
public class Foo {
private String name;
...
}
public class Bar {
private String name;
...
}
public class FooBarForm {
private Foo foo;
private Bar bar;
...
}
.
<form:form modelAttriubte = "fooBarForm" method = "post">
<form:input path = "foo.name" />
<form:input path = "bar.name" />
</form:form>
.
@RequestMapping(...)
public String processForm(@ModelAttribute FooBarForm form, ...) { ... }
@RequestParam
peuvent être combinés avec @ModelAttribute
et (notez que les balises de printemps ne prennent pas en charge @RequestParam
):
<form:form modelAttriubte = "foo" method = "post">
<form:input path = "name" />
<input type = "text" name = "bar_name" />
</form:form>
.
@RequestMapping(...)
public String processForm(@ModelAttribute Foo foo,
@RequestParam("bar_name") String barName) { ... }
Qu'est-ce qui ne fonctionne pas exactement avec les objets imbriqués? – axtavt
@axtavt: Eh bien, je ne sais pas comment les imbriquer. Si je fais une forme "super" qui imbrique les deux formes que j'utilise actuellement, elle dit que les attributs du modèle sont nuls. Dans d'autres cas, le bouton ne fait rien du tout. Pourriez-vous donner un exemple sur la façon de les imbriquer? – toomuchcs