0

このrest-methodを使用して、データベースからユーザーオブジェクトを受信しようとしています:

@RestController
@RequestMapping("/rest/users")
public class UserRestController {

    @Autowired
    private UserService service;

@RequestMapping(method = RequestMethod.GET)
 public Collection<User> getAllUsers(@RequestBody(required = false) User user) throws BadHttpRequest {
        System.out.println(user);//ALWAYS RETURNING NULL :(
        if (user == null) {
            return service.getAllUsers(); //Always returns this!
        } else if (user.getUserId() == null) {
            return Collections.singletonList(service.getUserByEmail(user.getUsername()));//I  want this
        } else if(user.getUsername() == null){
            return Collections.singletonList(service.getUserById(user.getUserId()));
        }else{
            throw new BadHttpRequest(new Exception("User id/email mismatch"));
        }
    }

私はこのJavaScriptを使用します:

var user = [{ "username": "fms7@hotmail.no", "userId": 1}];

$.ajax({
    type: "get",
    url: "/rest/users/",
    data: JSON.stringify({ User: user }),
    success: function(data){alert(data);},
    error: function(errMsg) {
        alert("bais");
    }
});

誰かが私が間違っていることを知っていますか?

4

1 に答える 1

1

これが問題を引き起こしていると思います。

data: JSON.stringify({ User: user })

次のように変更する必要があります。

data: { User:JSON.stringify(user) }

それが役に立てば幸い。

于 2016-01-20T13:24:27.937 に答える