あなたは簡単にこのように、ホルダーオブジェクトを使用して1つのモデルの属性に複数のオブジェクトを組み合わせることができます。
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
(春タグは@RequestParam
をサポートしていないことに注意してください)だけでなく@ModelAttribute
と組み合わせることができます。
<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) { ... }
ネストされたオブジェクトでは正確には機能しません。 – axtavt
@axtavt:よく私はそれらを入れ子にする方法がわかりません。私が実際に使用している2つのフォームを入れ子にした "スーパー"フォームを作成すると、modelattributesはnullと表示されます。他のいくつかのケースでは、ボタンはまったく何もしません。それらを入れ子にする方法の例を教えてください。 – toomuchcs