私はフォームオブジェクトをサーバ側でサポートする、オブジェクトのコレクションに対応するネストされたフィールドセットのリストを持つフォームを持っています。フィールドセットは、クライアント側で追加または削除できます。私はコマンドオブジェクトにオブジェクトインデックスやスパースリストを気にせずにフォームを提出したい。Spring MVCフォームで配列フィールドを簡単に送信する方法は?
ここに私のコントローラメソッドのコードです:
<input name="prop[]">
、それが自動的にすべての値を$_POST["prop"]
を移入します:PHP、Railsのなどで
@PostMapping("/foobar")
public String doPost(FoobarForm form) {
//...
}
は、それは非常に簡単です。春のMVCでの作業
は、私はこれらの事を試してみました:
<input name="prop[]">
-Invalid property 'prop[]' of bean class [...]: Invalid index in property path 'prop[]'; nested exception is java.lang.NumberFormatException: For input string: ""
<input name="prop">
を言っては動作しません - 場合でも、複数のリストに型指定されたBeanのプロパティにバインドしませんフィールドは存在する。<input name="prop[${i}]">
- クライアント側とサーバー側の両方で、疎なリストとインデックスの処理が面倒です。パワフルなWebフレームワークで作業するときは、確かに正しいことではありません。
私は、なぜ私は、プロパティ名に[]
を使用し、春には、自動的にリストを作成させることはできません思ったんだけど?合理的な回答なしに、Spring JIRAのthree timesに尋ねられました。
ビューリゾルバには何を使用していますか? Thymeleaf、JSP? –
SpEl( '$ {prop}')を使う必要があります。 'prop'はどこから来ていますか?より良いヘルプを得るための完全なコードを表示する –