gpt4 book ai didi

java - AJAX 请求发送 null 参数到 Java Spring Controller

转载 作者:行者123 更新时间:2023-12-02 09:21:26 25 4
gpt4 key购买 nike

我正在尝试执行一个简单的 POST 请求,但由于某种原因我的 Integer 参数为空。这是非常基本的事情,但我不明白我在这里做错了什么。

这是我迄今为止尝试过的:

$rootScope.addUser = function(userId) {
$http.post('/addUser', {
params: {
user_id: userId
}
}).then(function(result) {
$rootScope.userId = undefined;
});
};

Controller

@PostMapping("/addUser")
public void addTournament(@RequestParam(required = false) final Integer userId) {
LOG.info("addUser: {}" , userId);
}

我也尝试过这样做 @RequestParam(name = "user_id") Final Integer userId,但即使这样也不起作用!

最后我将删除“required = false”参数,但我暂时将其留在那里只是为了验证 userId 确实为 null。

输入是从用户输入数字并单击按钮时获取的。

最佳答案

@RequestParam 名称与发布的属性名称不匹配:user_iduserId。使用 @RequestParam(name = "user_id") Final Integer userId 来匹配它们,或者使用相同的请求属性和 @RequestParam 名称。

[编辑]

当我阅读 params: { ... } 时,我希望它们是额外的请求参数,而不是 POST 正文的一部分。你能尝试一下POSTing数据使用:

$http.post('/addUser', { userId: userId }

并使用以下@PostMapping:

@PostMapping("/addUser")
public void addTournament(@RequestBody User user) {
LOG.info("addUser: {}" , user.getUserId());
}

...

class User {
private String userId;

// getter and setter
}

关于java - AJAX 请求发送 null 参数到 Java Spring Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58669895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com