1

以下のコードは正常に動作しますが、2 つのデータ オブジェクトを送信する場合のリクエストの処理方法がわかりませんでした。

        //angular 
        $scope.data = //item object
        $http({
            method : 'POST',
            url : '/items',
            data : $scope.data,
            headers : {
                'Content-Type' : 'application/json'
            }
        }).success(function(data) {
        //...
        });
       //java rest
       @RequestMapping(value="/items", method=RequestMethod.POST)
       public ResponseEntity<?> createIslem(@RequestBody Item item){ 
       //....
       }

以下の要求を処理するには、Java コントローラー メソッドの署名をどのようにすればよいですか?

        //angular 
        $scope.data = //item object
        $http({
            method : 'POST',
            url : '/items',
            //data1 is of type Item and data2 is of type AnotherObject
            data : {data1: $scope.data1, data2: $scope.data2}
            headers : {
                'Content-Type' : 'application/json'
            }
        }).success(function(data) {
        //...
        });
4

1 に答える 1

2

さて、次のようなクラスが必要です。

public class Command {
    private Item data1;
    private AnotherObject data2;
    // getters and setters omitted for brevity
}

メソッドは次のように宣言する必要があります

public ResponseEntity<?> createIslem(@RequestBody Command command)

Java オブジェクトの構造が、送信する JavaScript オブジェクトの構造と一致するようにします。

于 2015-08-29T12:37:26.173 に答える