私の問題は次のとおりです。
1 つのフォームから入力する必要がある 2 つの異なるオブジェクトがあります。
オブジェクトが 1 つの場合は、newFoo.html で次のようにします。
<form th:object="${foo}" th:action="@{/foo}" method="post">
<input type="text" th:field="*{name}"/>
<button type="submit">Go</button>
</form>
そしてFooControllerで:
@RequestMapping(value = "/foo/new", method = RequestMethod.GET)
public String newFoo(final Foo foo, Model model) {
return "newFoo";
}
@RequestMapping(value = "/foo/new", method = RequestMethod.POST)
public String saveFoo(final Foo foo, final BindingResult bindingResult, Model model) {
fooService.save(foo);
return "redirect:/foo/new";
}
「ステータス」変数を含む別のオブジェクト バーがあるとします。同じフォーム内で入力を送信できるように、そのオブジェクトを渡すにはどうすればよいですか?
お気に入り:
<form th:object="${foo} && ${bar}" th:action="@{/foo}" method="post">
<input type="text" th:field="*{name}"/>
<input type="text" th:field="*{status}"/>
<button type="submit">Go</button>
</form>
これまでのところ、th:object を含むフィールドセットを実行しようとしましたが、機能しません。フォームに 2 つの th:object を入れようとしましたが、これも機能しません。
私が見つけた唯一の方法は、これら 2 つのオブジェクトを含む別のオブジェクトを作成し、それを渡すことです。それはうまく機能しますが、そのようなオブジェクトを作成することはできません。それはナンセンスです (機能したとしても)。
もちろん、ここでのオブジェクトは Foo や Bar ほど単純ではありません。しかし、それは私にできることではありません。
そのような 2 つのオブジェクトを渡してフォームで使用することは可能ですか?
もうありがとう。