0

サーバー側にメソッドがあります:

@RequestMapping(method = RequestMethod.GET)
public List<UserDTO> getAllUsers(@RequestParam(value = "groupId", required = false) Long groupId,
                                 @RequestParam(value = "pagination") Pagination pagination){
    // some stuff
}

そして、クライアント側からデータを送信しようとしますRestangular:

function getUsers(filters){
    restService.all("users").getList(filters).then(function(users){
        $scope.data.users = users;
    });
}
// ....
getUsers({groupId: undefined, pagination: $scope.data.pagination});

可能な場所pagination:

$scope.data = {
    // Other parameters
    pagination: {
        currentPage: 1,
        totalItems: 30,
        itemsPerPage: 5
    }
};

しかし、私は得ました:

Failed to convert value of type 'java.lang.String' 
to required type 'pagination.Pagination';

私が探したとき、Request URL私は見ました:

http://localhost:8080/skp/users?pagination=%7B%22currentPage%22:1,%22totalItems%22:30,%22itemsPerPage%22:5%7D

そしてQuery String Parameters、次のとおりです。

pagination:{"currentPage":1,"totalItems":30,"itemsPerPage":5}

ページネーションオブジェクトをサーバー側に送信する必要がありますが、オブジェクトではなく文字列を送信しようとします。HTTPGETメソッドとgetList Restangularメソッド send パラメータを使用して、 asQuery Stringではなく、問題の原因と思われる方法はありますか? Paginationまたは、サーバー側で文字列ではなくオブジェクトとして扱うにはどうすればよいですか? 回答ありがとうございました

4

1 に答える 1

1
pagination=%7B%22currentPage%22:1,%22totalItems%22:30,%22itemsPerPage%22:5%7D

私のコメントで述べたように、これは文字列として値を持つ 1 つのパラメーターです。オブジェクトまたは入力 Bean をサーバー側で設定する場合は、ページネーション内で 3 つの値を 3 つの個別のパラメーターとして送信する必要があります。パラメータと Bean フィールド名を同じにして、これらのフィールドを自動入力する

于 2015-06-04T20:20:44.770 に答える