【问题标题】:Object param is not binding spring boot + angular2对象参数未绑定 spring boot + angular2
【发布时间】:2018-05-11 14:47:29
【问题描述】:

我正在尝试从 Angular 应用程序向 srping 启动中创建的 api 发出 http POST 请求。 api 将对象作为参数,当使用带有表单数据或 urlenconde 参数的邮递员执行 url 时,请求完成可以,但使用角度调用该对象没有绑定。

我的角码是:

 opciones(): RequestOptionsArgs {
let headers: Headers = new Headers({ 'Content-Type': 'application/json' });

// headers.append('Content-Type', 'application/json');

let options: RequestOptionsArgs = new RequestOptions();

options.headers = headers;

return options;
}

UserById(param: Object): any {
console.log(JSON.stringify(param));
return this._http.post('http://localhost:8080/user/userbyid', JSON.stringify(param), this.opciones()).pipe(
  map((res: Response) => {
    return res.json();
  }),
);

}

我尝试将 param 对象作为 json 发送并且不进行解析,结果是相同的。对象示例:

{"User":"leonardo_alvarez","User2":"Usuario2"}

我的 spging 启动代码是:

public class userObj {

    private String user;
    private String user2;

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getUser2() {
        return user2;
    }

    public void setUser2(String user2) {
        this.user2 = user2;
    }
}

@Autowired
private REL_UserRepository rel_userRepository;
@PostMapping(path = "/userbyid")
public @ResponseBody List<REL_User> getUser (userObj User){
    return rel_userRepository.findByUserid(User.getUser());
}

请求在控制台中执行正常而没有错误。但用户对象保持为空。

enter image description here

有什么建议吗?

谢谢。

【问题讨论】:

  • 当您尝试执行此 POST 时,JavaScript 控制台中是否出现错误?
  • 嗨,没有请求执行没有错误。我在帖子中添加了一张图片。

标签: angular spring-boot binding


【解决方案1】:

您在控制器的参数中缺少@RequestBody 注释。

应该是这样的:

@PostMapping(path = "/userbyid")
public @ResponseBody List<REL_User> getUser (@RequestBody userObj User){
    return rel_userRepository.findByUserid(User.getUser());
}

但请注意,您违反 Java 约定,不正确地命名类和参数,这显然会使您的代码更难理解。

【讨论】:

  • 我尝试使用 @RequestBody 注释,但我收到错误:“不支持的媒体类型”。这是我在 java 中的第一个应用程序,我需要更多关于约定的知识。
猜你喜欢
  • 1970-01-01
  • 2015-09-02
  • 2018-12-11
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 2011-01-14
  • 2018-12-22
  • 1970-01-01
相关资源
最近更新 更多