2016-11-08 5 views
1

JSからSpring Controllerへのアイテムの配列を渡します。私はJSでこのモデルを持っている:オブジェクトの配列はAjaxのString to Springコントローラのようになります

function Row() { 
      this.id = 0; 
      this.rulingValue = ''; 
      this.rulingType = ''; 
      this.dateStart = ''; 
      this.dateEnd = ''; 
     } 

私は行の配列がある - そして、私はこの配列を埋めるvar jsonData = [];

を。そして、私はList<Item>

@Data 
public class Item { 
    private String id; 
    private String rulingValue; 
    private String rulingType; 
    private String dateStart; 
    private String dateEnd; 
} 

@RequestParam("items") List<Item> items 

のように、この配列を期待しかし、私の項目のパラメータは文字列として到着春コントローラで

var oMyForm = new FormData(); 
oMyForm.append("items", jsonData); 

に設定します。この配列をList<Item>のように取得するにはどうすればよいですか?

+0

'@ RequestBody'を使用してください。クエリ文字列の '@ RequestParam' – sura2k

答えて

0

JSONをコントローラに送信するための推奨の方法は、フォームパラメータではなくボディペイロードです。これを行うには、次の3つの操作を行うだけです。

  1. クラスパスにJSONライブラリがあることを確認してください。 fasterxml.jackson。
  2. は、例えば、@RequestBodyを使用してコントローラのハンドラメソッドで受け取るパラメータに注釈を付けるあなたのJSONペイロードがHTTPのContent-Type「アプリケーション/ JSON」でPOSTリクエストを介して送信されていることを確認

    のgetItems(@RequestBodyリスト項目)

完全な例では、ここで見つけることができます:あなたは、フォームパラメータとしてデータを送信することに滞在する場合http://www.beabetterdeveloper.com/2013/07/spring-mvc-requestbody-and-responsebody.html

、カスタムプロパティを記述する必要がありますエディターは、ここに示された行に沿って:JSON parameter in spring MVC controller。それははるかに難しく、余分なコードが必要です。

関連する問題